【问题标题】:how to put each php foreach value into each jquery ajax如何将每个 php foreach 值放入每个 jquery ajax
【发布时间】:2011-09-08 12:43:52
【问题描述】:
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>

【问题讨论】:

  • 有一个解决方案可以做你想做的事,但你应该知道这绝对是错误的做法。您至少应该在一个 ajax 调用中传递所有 10 个项目...
  • @Fosco,如果我在一个 ajax 调用中创建所有项目,例如 $count = $data['number'].'a';,然后探索 a 以获取 process.php 中的每个数字,但 process.php 如何知道有多少已探索的数字它将有?它也会犯像$explored[0]explored[1]这样的错误...最后一个是什么?
  • 你可以像数组一样传递它,然后智能解析另一边的数组..你在某个地方有一个知识洞。

标签: php javascript jquery foreach


【解决方案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'])然后foreach通过它们。

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

【讨论】:

  • 谢谢。这可以返回我想要的数据,但 CPU 有点高。从 5% - 22%。也许我的问题不是一个好主意。我只想一次处理 10+ 件事情,然后缩短页面加载时间。
【解决方案2】:

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

【讨论】:

  • 怎么做javascript array,对不起,我不擅长。
猜你喜欢
  • 2018-05-14
  • 2021-05-23
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
相关资源
最近更新 更多