如何将每个php foreach值放入每个jquery ajax中

时间:2011-06-04 21:24:24

标签: php javascript jquery foreach

foreach($data['data'] as $data){
    $count = $data['number'];
}

// $data['number']; will return some number like:

159809
359107
249178
... //10+ numbers

然后,如何将每个php foreach值放入每个jquery ajax? (通过jquery ajax放入每个数字,将有10个以上的ajax调用,并返回一个div中的所有数据)。感谢。

<script type="text/javascript">
jQuery(document).ready(function(){
    $.ajax({
        url: "process.php", 
        dataType: "html",
        type: 'POST', 
        data: "items=<?php echo $count; ?>", //each $count value in each ajax
        success: function(data){
            $("#result").html(data);
        }
    });
});
</script>
<div id="result"></div>

2 个答案:

答案 0 :(得分:2)

将php数组中的10个值放到javascript数组中,进行10次javascript循环,并使用javascript数组中的数据调用ajax函数。

答案 1 :(得分:1)

如果你真的想为每个$ count值调用一个唯一的ajax,那么#result div中的数据会返回:

<script type="text/javascript">
    $(document).ready(function(){

<?php
foreach($data['data'] as $data){
    $count = $data['number'];
    ?>
      $.ajax({
        url: "process.php", 
        dataType: "html",
        type: 'POST', 
        data: "items=<?php echo $count; ?>",
        success: function(data){
            $("#result").append(data);
        }
      });
    <?php
}
?>

    });
</script>
<div id="result"></div>

但是,我强烈建议将值作为数组传递,并且只有一个ajax调用:

$count = array();
foreach($data['data'] as $data){
    $count[] = $data['number'];
}
$datacount = implode('-',$count);
?>

<script type="text/javascript">
    $(document).ready(function(){
      $.ajax({
        url: "process.php", 
        dataType: "html",
        type: 'POST', 
        data: "items=<?php echo $datacount; ?>",
        success: function(data){
            $("#result").append(data);
        }
      });
    });
</script>
<div id="result"></div>

在process.php的服务器端,您可以explode('-',$_POST['items'])然后通过它们进行预告。

这只是实现它的另一种方式......它可能是json_encoded或许多其他方式。