最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - how to put each php foreach value into each jquery ajax - Stack Overflow

programmeradmin3浏览0评论
foreach($data['data'] as $data){
    $count = $data['number'];
}

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

159809
359107
249178
... //10+ numbers

Then, how to put each php foreach value into each jquery ajax? (put every number via a jquery ajax, there will be 10+ ajax calls, and return all the data in one div). Thanks.

<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>
foreach($data['data'] as $data){
    $count = $data['number'];
}

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

159809
359107
249178
... //10+ numbers

Then, how to put each php foreach value into each jquery ajax? (put every number via a jquery ajax, there will be 10+ ajax calls, and return all the data in one div). Thanks.

<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>
Share Improve this question asked Jun 4, 2011 at 21:24 cj333cj333 2,61921 gold badges70 silver badges111 bronze badges 3
  • There's a solution to do what you want, but you should know this is definitely the wrong way to do it. You should pass all 10 items in ONE ajax call, at the least... – Fosco Commented Jun 4, 2011 at 21:27
  • @Fosco, if I make all items in ONE ajax call, like $count = $data['number'].'a'; then explore a to get each number in process.php, but how process.php can know how many explored numbers it will have? it also will make a mistake like $explored[0], explored[1]... what is the last one? – cj333 Commented Jun 4, 2011 at 21:32
  • you can pass it like an array and then intelligently parse the array on the other side.. You've got a knowledge hole somewhere. – Fosco Commented Jun 4, 2011 at 21:33
Add a ment  | 

2 Answers 2

Reset to default 2

put the 10 values from php array to javascript array, make a javascript loop for 10 times and call ajax function with data from javascript array.

If you really want a unique ajax call for each $count value, with the data returning in the #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>

However, I would highly remend passing the values as an array and having only one ajax call:

$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>

On the server side in process.php, you can explode('-',$_POST['items']) and then foreach through them.

This is just one other way to acplish it... It could be json_encoded or many other ways.

发布评论

评论列表(0)

  1. 暂无评论