3
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>
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... 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? 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. Commented Jun 4, 2011 at 21:33

2 Answers 2

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.

Sign up to request clarification or add additional context in comments.

1 Comment

how to do a javascript array ,sorry for I am not good at it.
1

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 recommend 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 accomplish it... It could be json_encoded or many other ways.

1 Comment

thanks. this can turn back the data I want, but CPU is bit higher. from 5% - 22%. maybe my question is not a good idea. I just want process 10+ thing in one time, then shorter the page load time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.