0

以下は私のAJAXコードです。コメントに質問を書きました。

$.ajax({
type: "POST",
url: "dbtryout2_2.php",
data: datastr,
success: function(arrayphp) {
     //here one by one text is being received from php  from within a loop
     //each text item is getting displayed as link here
     //it is OK that text is getting displayed as link
     //BUT the problem is that all the text returned from php are getting displayed as 
     //one link i.e between one "<a></a>"
     //I WANT THAT EACH TEXT SHOULD BE DISPLAYED AS SEPERATE LINKS
     //AS EACH TEXT IS GETTING RETURNED FROM WITHIN SEPARATE ITERATIONS OF PHP LOOP
     var link = $('<a href="#" class="album"><font color="red">' + arrayphp + '</font></a>');
    linkclass = link.attr("class"); 
    $(".searchby .searchlist").append(link);   
}
}); 

何をすべきか?

4

1 に答える 1

0

PHPは、すべてを一度にajax成功関数にスローします...php配列でjson_encodeを使用し、それをエコーし​​てjson配列として渡す必要があります。

<?php 
$return = array();
foreach($array as $key=>$value){
 //Do your processing of $value here
 $processed_value = $value;
 array_push($return, $processed_value);
}
echo json_encode($return);
?>

ajax 呼び出しでは、dataType を「json」に設定して、php から渡されたデータを json 配列として解析します。jquery each を使用して受け取った配列全体をループします。

$.ajax({
type: "POST",
url: "dbtryout2_2.php",
data: datastr,
dataType: "json",
success: function(arrayjson) {
     $.each(function(arrayjson, function(i, processed_value) {
       var link = $('<a href="#" class="album"><font color="red">' + processed_value + '</font></a>');
       linkclass = link.attr("class"); 
       $(".searchby .searchlist").append(link); 
    });  
}
}); 
于 2013-08-27T19:40:45.323 に答える