2016-11-29 1 views
0

私はphpでデータベースからデータを呼び出すためにajaxを作成していますが、htmlページの2つの入力(ラベルとリストボックス)に結果をロードしたいのですが、問題はそれですラベル#FrmCountの値を示していますが、リストボックスここ#FarmersID .. には何も表示されていないことは、AJAXデータをajaxからhtmlラベルとリストボックスにロードする

$.ajax({ 
    type:"POST", 
    url:"AddData.php", 
    dataType: 'json', 
    data: 
     { 
      'Order_ID': Order_ID, 
      'Frm_ID':Frm_ID, 
      'Frm_Wet':Frm_Wet, 
      'Frm_Dry':Frm_Dry, 
      'Frm_Fermented':Frm_Fermented, 
      'Frm_Date':Frm_Date 
     }, 
    success: function(data) 
     { 
      $("#FrmCount").html(data.FarmerCount); 
      $("#FarmersID").html(data.FarmersID); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
     console.log('ERROR', textStatus, errorThrown); 
    } 

}) 

であり、これはPHPのコードです:

$stmt1 ="SELECT distinct Farm_id FROM ordersfarmers WHERE Order_ID='".$_POST["Order_ID"]."'AND Reply='1'"; 

     $results=$conn->query($stmt1)->fetchAll(); 
     $res=count($results); 
     foreach ($conn->query($stmt1) as $row) 
     { 
      $json = array("FarmerCount" => $res, 
      "FarmersID" => $row['Farm_id'] 
     ); 
     echo json_encode($json); 
     } 

とHTML部分

<div> 
<select name="FarmersID" id="FarmersID" multiple style="width:280px;height:110px;" onclick="showonmap()"> 
</select> 
</div> 
<div> 
<label id="FrmCount"></label> 
</div> 
+0

var_dump($ _POST)を試しましたか? –

+0

@IgorUnger私はそれを使用する方法がわかりません。あなたは私に教えてくれますか? – Beginner

+0

ちょうどタイプしてください:var_dump($ _ POST);あなたの$ stmt1の前に。次に、サーバーがデータを受信して​​いるかどうかを確認します。 –

答えて

0

:適切な選択形式ではありません

<select name="FarmersID" id="FarmersID" multiple style="width:280px;height:110px;" onclick="showonmap()"> 
1 <!-- your id --> 
</style> 

は、何が必要なHTML内optionを作成することです。この例では、次の操作を行うことができます:

$("#FarmersID").append('<option value="' + data.FarmerID + '">' + data.FarmerID + '</option>'); 

しかし、常に1つの要素で終わることになります。あなたは配列を返すべきです(あなたは現時点でそうしていません)、またはphpに適切なhtmlを作成してjavascripに返すことができます。

編集:

foreach ($conn->query($stmt1) as $row) 
{ 
    $farmesIds[$row['Farm_id']] = $row['Farm_id']; 
} 
$json = array(
    "FarmerCount" => $res, 
    "FarmersID" => $farmesIds 
); 
echo json_encode($json); 

とJavaScript

$.each(data.FarmersID, function(id, value) { 
    $("#FarmersID").append('<option value="' + id + '">' + value + '</option>'); 
}); 

にあなたが値として何かを渡すことができますし、キーとしてIDを保持する(ラベルやなめらか?)。

+0

ありがとう..it作品:))...しかし、結果は複数の要素です...あなたはそれを作る方法を教えてくれますか? – Beginner

+0

上記の私の編集を参照してください。ところで、$ _POST paramを使用して、あなたの例のようにクエリを作成するべきではないことを知って欲しい。 – pbogut

+0

私はあなたに感謝することはできません。最終的には正しく機能します:) – Beginner

0

PHPが正しくありません。

すべての結果をフェッチしていますが、再度フェッチしようとしましたが、ステートメントポインタが既にデータセットの最後にあります。

これを試してみてください:

$results = $conn->query($stmt1)->fetchAll(); 
$res = count($results); 

$json = array(
    "FarmerCount" => $res, 
    "FarmersID" => $results 
); 
echo json_encode($json); 

を、あなたの配列にこのFarmerCountアイテムを必要としない、あなただけのdata.FarmersID.lengthをすることによって、この番号を取得することができます。コード$("#FarmersID").html(data.FarmersID);あなたがbasicllyような何か作成して

関連する問題