※ ChatGPTを利用し、要約された質問です(原文:jQueryでAJAXを利用しJSONデータを取得)
jQueryでAJAXを利用しJSONデータを取得
このQ&Aのポイント
商品コードを入力したら、AJAXで商品名と価格を取得して表示させ、それを確認して個数を入力して注文票を作ろうとしています。
商品名だけの取得は何とかできたのですが、商品名と価格といったように複数データを取得するのに苦労しています。
JSON形式で受け取ればいいのだろうと考えて、そうしているのですが、うまくいきません。
jQueryでAJAXを利用しJSONデータを取得
商品コードを入力したら、AJAXで商品名と価格を取得して表示させ、それを確認して個数を入力して注文票を作ろうとしています。
商品名だけの取得は何とかできたのですが、商品名と価格といったように複数データを取得するのに苦労しています。
独学のプログラミングなので初歩的な所が分かっていないのだろうと思いますが、JSON形式で受け取ればいいのだろうと考えて、そうしているのですが、うまくいきません。
下記は、商品名だけなら取得できているコードですが、どこを修正したらいいでしょうか。
よろしくお願いします。
ファイル名:test1.php
<html>
<head>
<title>test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
<script type='text/javascript'>
$(document).ready(function(){
$("#goodsid").keyup(function(e){
var search_val=$("#goodsid").val();
$.post("./SubTest1.php",{search_term : search_val},function(data){$("#goodsname").html(data);})
})
});
</script>
</head>
<body>
<form id="searchform" method="post">
<div>
<label>商品番号</label>
<input type="text" name="goodsid" id="goodsid" />
</div>
</form>
<div id="goodsname"></div>
<div id="goodsprice"></div>
</body>
</html>
ファイル名:SubTest1.php
<?php
ini_set("default_charset","utf-8");
// MySQLクラスファイルの取り込みとインスタンスの作成
require_once("../mysql.php");
$mysql = new MySQL;
$term = $_POST["search_term"];
$sql = "SELECT goods_name,goods_price FROM `goods_table` WHERE goods_num ='".$term."'";
$mysql->query($sql);
$row = $mysql->fetch();
// ここまででデータを取得している
if ($row){
$goodsname = $row['goods_name'];
}else{
$goodsname = "";
}
echo $goodsname; //呼び出し元のtest1.phpに返す値
?>
お礼
早速のご回答ありがとうございます。 やってみたのですが、結果として、 undefined,undefined と表示されました。 var data = json.name + ',' + json.price; の部分の json.nameとjson.priceがそれぞれundefinedと表示されているようです。 あと、商品名だけ表示させようとして、上記の部分を var data = json.name; に変更してやってみると、何も表示されませんでした。 私としては、undefinedと表示されると思っていたのですが....。 引き続き、調べてみますが、何かご助言などありましたら、よろしくお願いします。
補足
失礼いたしました。私のミスでした。 ご回答の通りで全く問題なく動作しました。 長時間悩んだものが解決しました。 本当にありがとうございました。