将Jquery Ajax结果附加到现有表

Kha*_*ara 0 ajax jquery append

我需要将ajax请求结果放到现有表中,怎么做?这是我的ajax请求

$("input#order").click(function(){
    var idmenu  = $("#idmenu").val();
    var menu    = $("#idmenu :selected").text();
    var qty     = $("#qty").val();

    $.ajax({
        type    :'POST',
        url     :'<?php echo base_url();?>index.php/welcome/process',
        data    :'idmenu='+idmenu+'&menu='+menu+'&qty='+qty,
        beforeSend:function(){
            $("#result").html('<img src="<?php echo base_url();?>assets/loading.gif"/>');
        },
        success:function(result){
            //result is json format
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

这是来自ajax请求的json格式

{"itemname":"product1","qty":"3","prices":"4500"}
Run Code Online (Sandbox Code Playgroud)

这是我的表格格式

<table class="list-order">
    <tr>
        <th class="order">order</th>
        <th class="qty">qty</th>
        <th class="pice">price</th>
    </tr>
    //how to append ajax result here
    <tr>
        <td colspan="2"></td>
        <td align="right"><input type="submit"  size="25" id="process" value="Proses"/></td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想追加ajax的结果

<tr>
    <td></td>
    <td></td>
    <td></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

而不是在标签里面,比如

<tr>
   <td>result is not here</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

最终结果看起来像这个

<table class="list-order">
    <tr>
        <th class="order">order</th>
        <th class="qty">qty</th>
        <th class="pice">price</th>
    </tr>
    <!-- result look like this -->
    <tr>
        <td>product1</td>
        <td>2</td>
        </td>4500</td>
    </tr>
    <!-- end result-->
    <tr>
        <td colspan="2"></td>
        <td align="right"><input type="submit"  size="25" id="process" value="Proses"/></td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

Ant*_*ist 5

在不知道JSON的确切格式的情况下,很难给出明确的答案.但是,假设您有一个表示行的JSON对象数组,则需要迭代该数组,并为每个对象执行以下操作:

  • 创建一个新<tr>元素 -var $tr = $('<tr/>');
  • 对于每个信息项(我假设每个项目<td>),创建一个<td>元素并设置其内容 - var $td = $('<td/>').html(x.y)(x是您当前的对象,y是对象中的一个字段)然后将其附加到行 - $tr.append($td);.
  • 在现有表的最后一行之前附加行 - $('.list-order tr:last').before($tr);

根据问题中提供的其他信息,以下代码应该执行您需要执行的操作:

success: function(result) {
    //result is json format
    var $tr = $('<tr/>');
    $tr.append($('<td/>').html(result.itemname));
    $tr.append($('<td/>').html(result.qty));
    $tr.append($('<td/>').html(result.prices));
    $('.list-order tr:last').before($tr);
}
Run Code Online (Sandbox Code Playgroud)