2011-06-04 5 views
3
foreach($data['data'] as $data){ 
    $count = $data['number']; 
} 

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

159809 
359107 
249178 
... //10+ numbers 

Ensuite, comment mettre chaque PHP pour chaque valeur jquery ajax? (mettre chaque nombre via un ajax jquery, il y aura 10+ appels ajax, et retourner toutes les données dans un div). Merci.comment mettre chaque php foreach valeur dans chaque jquery ajax

<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> 
+0

Il existe une solution pour faire ce que vous voulez, mais vous devez savoir que c'est certainement la mauvaise façon de le faire. Vous devriez passer tous les 10 articles dans un appel ajax, au moins ... – Fosco

+0

@Fosco, si je fais tous les éléments dans un appel ajax, comme '$ count = $ data ['nombre']. 'A'; explorer 'a' pour obtenir chaque nombre dans' process.php', mais comment 'process.php' peut-il connaître le nombre de nombres explorés? il fera aussi une erreur comme '$ explored [0]', 'explored [1]' ... quel est le dernier? – cj333

+0

vous pouvez le passer comme un tableau et ensuite analyser intelligemment le tableau de l'autre côté .. Vous avez un trou de connaissances quelque part. – Fosco

Répondre

1

Si vous voulez vraiment un appel ajax unique pour chaque valeur de comptage de $, avec les données de retour dans le #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> 

Cependant, je recommande fortement le passage des valeurs comme un tableau et ayant un seul appel 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> 

du côté du serveur dans process.php, vous pouvez explode('-',$_POST['items']) puis foreach à travers eux.

Ceci est juste un autre moyen de l'accomplir ... Il pourrait être json_encoded ou de nombreuses autres façons.

+0

merci. cela peut retourner les données que je veux, mais le CPU est un peu plus élevé. de 5% à 22%. Peut-être que ma question n'est pas une bonne idée. Je veux juste traiter 10+ chose en une fois, puis plus court le temps de chargement de la page. – cj333

2

mettre les 10 valeurs de tableau php en tableau javascript, faire une boucle javascript pour 10 fois et appeler la fonction ajax avec les données de tableau javascript.

+0

comment faire un tableau javascript, désolé pour moi je ne suis pas bon. – cj333

+1

beaucoup de bons exemples sur google :) – MLS

Questions connexes