2016-09-28 21 views
0

これはドロップダウンレコードを取得するためのAJAXコードです。AJAXの成功関数でjsonデータを取得する方法

function item_value() { 
    $.ajax({ 
    type: "POST", 
    url: "ajax.php", 
    contentType: "application/json; charset=utf-8", 
    async: false, 
    data: data, 
    dataType: "json", 
    success: function (json) { 
     if (json == '') { 
     alert('No Records'); 
     } else { 
     alert(json); 
     $.each(json, function (index, elem) { 
      $("#item_select1").append("<option value=\"" + elem.value+ "\">" + elem.name+ "</option>"); 
     }); 
     } 
    } 
    }); 
} 

このファイルは、AJAXの成功を記録したり取得したりするために使用されます。 PHPスクリプトは、それはあなたが作成しているデータのように見えます

header('Content-type: application/json'); 
echo json_encode($data); 
+0

phpでjsonヘッダを送信するのはどうですか? –

+1

コードがあります。あなたは質問がありましたか? http://stackoverflow.com/help/how-to-ask(何の問題がありますか?デバッグするために何をしましたか?どのようなエラーメッセージが表示されますか?エラーメッセージを探す場所を知っていますか?あなたが探している生のHTTPリクエストやレスポンスなど) – Quentin

+0

レスポンスを解析しましたか?JSON http://api.jquery.com/jquery.parsejson/ – ravisachaniya

答えて

1

あなたが私たちの符号化されたデータを印刷する前に、次のヘッダーを追加してください、あなたは

Ajax.php

<?php 
include('../dbconnection/comp_connect.php'); 
$qry_item="SELECT item_id,item_name,item_unit,rate,description,tax_id,status FROM item"; 
$view_item=$conn->prepare($qry_item); 
$view_item->execute(); 
$rs_item=$view_item->fetch((PDO::FETCH_ASSOC)) 
$data = array('item_name' =>$rs_item['item_name'], 
       'item_unit'=>$rs_item['item_unit'], 
       'rate'=>$rs_item['rate'], 
       'description'=>$rs_item['description'], 
       'tax_id'=>$rs_item['tax_id'] 
      ); 
echo json_encode($data); 
?> 
0

PHPでは、AJAXの成功関数の中で何をしようとしているのかを整理していません。 elem

{ 
    "item_name": "something", 
    "item_unit": "something", 
    "rate": "something", 
    "description": "something", 
    "tax_id": "something" 
} 

しかし、あなたの成功の機能

$.each(json, function (index, elem) { 
    $("#item_select1").append("<option value=\"" + elem.value + "\">" + elem.name + "</option>"); 
}); 

のこの部分は、オブジェクトのコレクションを必要とする:PHPコードは、データベースから行をフェッチし、それが返すJSONは次のようになります)とnameおよびvalueの特性を有する。代わりに、あなたがPHPから得ているものでは、それぞれelemは文字列か数字であるので、elem.valueelem.nameは未定義です。

これを使用して選択肢にオプションを追加するので、PHPは複数の行を返す必要があり、PHPで割り当てるキーは成功関数で参照するプロパティと一致する必要があります。このようなものは、あなたが望むものに近いはずです。

<?php 
include('../dbconnection/comp_connect.php'); 
$qry_item = "SELECT item_id, item_name FROM item"; 
$view_item = $conn->prepare($qry_item); 
$view_item->execute(); 
while ($item = $view_item->fetch((PDO::FETCH_ASSOC)) { 
    $data[] = ['value' => $rs_item['item_id'], 'name' => $rs_item['item_name']]; 
} 
echo json_encode($data); 
関連する問題