как поместить каждое значение php foreach в каждый jquery ajax - PullRequest
3 голосов
/ 05 июня 2011
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 ]

2 голосов
/ 05 июня 2011

поместите 10 значений из массива php в массив javascript, сделайте цикл javascript 10 раз и вызовите функцию ajax с данными из массива javascript.

1 голос
/ 05 июня 2011

Если вы действительно хотите уникальный вызов ajax для каждого значения $ count, с данными, возвращающимися в div #result:

<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 или много других способов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...