将每个.post数据插入到使用的.each中

时间:2013-01-05 05:59:19

标签: php javascript jquery each .post

我想知道是否可以使用jQuery完成这项工作。请参阅以下代码。

HTML

<table id="order">
    <tr>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
    </tr>
    <tr>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
    </tr>
    <tr>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
        <td class="order_items"></td>
    </tr>
</table>

的javascript

$(document).ready(function(){
    $("td.load_ads").each(function(){
        $(this).html("Place a New Ad Free!");
    });
    var count=$("td.load_ads").length;  //18
    $.post('/fetch_orders.php',{count:count},function(data){
        var data_arr=data.split('/end');
        for(index=0;index < data_arr.length;index++){  //for each of the array values got back from fetch orders.php
            .
            ..
            ... Stuck here. How to make each data_arr(ie: each data_arr[index]) go into each td?

.POST脚本

$count =$_POST['count'];
$query="SELECT * FROM orders1_manager_orders ORDER BY RAND() LIMIT $count";
$db->setQuery($query);
$ads=$db->loadRowList();

foreach($ads as $ads_to_display){
    echo $orders_to_display[9].'/';
    echo $orders_to_display[10].'/end';
}

正如标题中所解释的,我需要将每个订单放入上面html表格中的每个空td个插槽中。但是,如果我在 .post 之后添加.each()函数,我的所有tds都会变成从脚本中获取的第一个数据,这意味着data_arr[1]

2 个答案:

答案 0 :(得分:1)

首先,请看看: http://php.net/manual/en/function.json-encode.php

http://www.islandsmooth.com/2010/04/send-and-receive-json-data-using-ajax-jquery-and-php/

第二:更好地使用div insted表,这将使您独立于客户端设备屏幕大小。

http://csswizardry.com/2011/08/building-better-grid-systems/

第三,这是绝对可怕的代码,但它应该是你的解决方案:

$("td.load_ads").each(function(){
    $(this).html("Place a New Ad Free!");
});
var count=$("td.load_ads").length;  //18
$.post('/fetch_orders.php',{count:count},function(data){
    var data_arr = [];

    var rows=data.split('/end');
    for(index=0;index < rows.length;index++){  
        var row = rows[i].split('/');

        for (var x in row) {
            data_arr.push(row[x]);
        }
    }

    var i = 0;
    $("td.load_ads").each(function () {
        if (data_arr[i]) {
            $(this).html(data_arr[i]);
        }

        i++;
    });
}   

答案 1 :(得分:0)

  $query = Sql_Query("SELECT * FROM  Table");
  $num_rows = mysql_num_rows($query);              
    for($i=0; $i < $num_rows; $i=$i+5)
     {

        $query1 = Sql_Query("SELECT * FROM  Table LIMIT ".$i.", 5 ");
                print '<td valign="top">';
               while ($row=mysql_fetch_assoc($query1))
                  {
                  print '<input type="checkbox" name="chk_group1[]" id="chk_group1" value="'.$row['isp_name'].'" />    '.$row['isp_name'].'<br />';

                     } 
                       print '</td>';

     }