2017-08-28 10 views
0

AJAXから複数の値を表示する必要がありますが、単一の値しか得られません。PHPでAJAXから複数の値を表示する方法は?

コンセプト: ユーザは、単一または複数のチェックボックスを選択し、チェックボックスによれば、画像とUSER_IDを表示します。画像を表示できますが、user_idは表示できません。これで私を助けてくれますか?

私は唯一のAJAXとPHPコード

をアップロード

AJAX

$.ajax({ 
    type: "POST", 
    url: "includes/compare_process.php", // 
    data:'users='+arr, 
    dataType: 'json', 
    success: function(msg){ 
     $("#pics_name").empty(); 
     $.each(msg, function() { 
      $("#pics_name").append("<img src='images/profile/" + this + "' alt='' />"); 
      $("#pics_Id").append();//I have to display id here 
     }); 
    }, 
    error: function(){ 
     alert("failure"); 
    } 
}); 

PHP

$_SESSION['compare_user']=$_POST['users']; 
$sql_compare='SELECT * FROM request WHERE Id IN (' .(is_array($_SESSION['compare_user']) ? implode(',', $_SESSION['compare_user']) : $_SESSION['compare_user']).')'; 
$compare_query=$conn->query($sql_compare); 
if ($compare_query->num_rows > 0) { 
    while($userdata12=$compare_query->fetch_assoc()){ 
     $compare_pic[]=$userdata12['profile_pic']; 
     $compare_Id=$userdata12['Id']; 
    } 
} 
echo json_encode($compare_pic, $compare_Id); 
exit(); 
+1

[json_encodeは()](http://php.net/manual/en/function.json-encode.php)次の2つを渡している、入力としてつのアレイをとります。すべての出力を1つの配列に戻してからjson_encodeに保存します。 –

+0

そしてAJAXでどのように表示できますか? –

答えて

0

。 PHPで2次元配列を作成する必要があります。

$_SESSION['compare_user']=$_POST['users']; 
$sql_compare='SELECT id, profile_pic FROM request WHERE Id IN (' .(is_array($_SESSION['compare_user']) ? implode(',', $_SESSION['compare_user']) : $_SESSION['compare_user']).')'; 
$compare_pic = array(); 
$compare_query=$conn->query($sql_compare); 
if ($compare_query->num_rows > 0) { 
    while($userdata12=$compare_query->fetch_assoc()){ 
      $compare_pic[]=$userdata12; 
    } 
    } 
echo json_encode($compare_pic); 
exit(); 

次に、Javascriptの各プロパティにアクセスします。

$.ajax({ 
    type: "POST", 
    url: "includes/compare_process.php", // 
    data:'users='+arr, 
    dataType: 'json', 
    success: function(msg){ 
     $("#pics_name,#pics_Id").empty(); 
     $.each(msg, function() { 
      $("#pics_name").append("<img src='images/profile/" + this.profile_pic + "' alt='' />"); 
      $("#pics_Id").append("<div>" + this.id + "</div>"); 
     }); 
    }, 
    error: function(){ 
     alert("failure"); 
    } 
}); 
+0

それは正しい。それは働いている。場合は、私はSQLクエリでフィールド名を追加する必要がある他のフィールドが必要とthis.fieldname値を取得することができます。右? –

+0

はい、そうです。 – Barmar

+0

クール!!もう一度私を助けてくれてありがとう、私はあなたの大ファンです。私の側からUpvote。 –

0
$.ajax({ 
    type: "POST", 
    url: "includes/compare_process.php", // 
    data:'users='+arr, 
    dataType: 'json', 
    success: function(msg){ 
     $("#pics_name").empty(); 
     $.each(msg, function (index, value) { 
      $("#pics_name").html("<img src='images/profile/" + value.profile_pic + "' alt='' />"); 
      $("#pics_Id").html(value.Id); 
     }); 
    }, 
    error: function(){ 
     alert("failure"); 
    } 
}); 

PHP

$_SESSION['compare_user']=$_POST['users']; 
$sql_compare='SELECT * FROM request WHERE Id IN (' .(is_array($_SESSION['compare_user']) ? implode(',', $_SESSION['compare_user']) : $_SESSION['compare_user']).')'; 
$compare_pic = array(); 
$compare_query=$conn->query($sql_compare); 
if ($compare_query->num_rows > 0) { 
    while($userdata12=$compare_query->fetch_assoc()){ 
      $compare_pic[]=$userdata12; 
    } 
    } 
echo json_encode($compare_pic); 
exit(); 

これはあなたが開始するはずです。上記のコードはJSONとして単一配列を返しています。 JavaScriptでは、必要な場所に必要なプロパティを表示できます。あなたは、関数にjsonencode

ので、この配列を入れて、配列にあなたの変数を置くことができ、複数の値を渡すため

http://php.net/manual/en/function.json-encode.php

+0

Mr.Bilal、私はIdを取得していますが、最初のチェックボックスをクリックして2番目のチェックボックスをクリックすると最初のIDを取得すると、2番目のIDと1番目のIDが表示されます –

+0

コードにappendを使用したためです。上記のコードを更新しました。今すぐチェックしてください。 –

+0

または、OPコードの変更を書き込んで追加の説明を投稿することができます – user10089632

1

機能jsonencodeで二番目の引数は、次のリンク応じたオプションのためでありますあなたのPHPコードでこれを行うことができます:

$myArray = [ 
    'compare_pic' => $compare_pic, 
    'compare_Id' => $compare_Id 
]; 

echo json_encode($myArray); 

は、次のようなjQueryのコードであなた応じて、各値を取得する:あなたは配列に$compare_Idを入れていない

var firstValue = msg.compare_pic 
var secondValue = msg.compare_Id 
関連する問題