商品コードを入力したら、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 …
<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に返す値
?>
No.1ベストアンサー
- 回答日時:
こんにちは。
PHPにはJSON形式で返してくれる便利な関数があります。
==== PHP側の改造点
$array = array();
$array['name'] = $row['goods_name'];
$array['price'] = $row['goods_price'];
header ( 'Content-type: application/json; charset=utf-8' );
echo json_encode ( $array );
==== JS側の改造点
$.post(
"./SubTest1.php",
{search_term : search_val},
function(json){
var data = json.name + ',' + json.price;
$("#goodsname").html(data);
}
);
こんな感じになると思います。
PHPの配列の添字がそのままJSONのキーとなります。
なのでjson.nameとjson.priceでそれぞれの値が取得できます。
この回答への補足
失礼いたしました。私のミスでした。
ご回答の通りで全く問題なく動作しました。
長時間悩んだものが解決しました。
本当にありがとうございました。
早速のご回答ありがとうございます。
やってみたのですが、結果として、
undefined,undefined
と表示されました。
var data = json.name + ',' + json.price; の部分の
json.nameとjson.priceがそれぞれundefinedと表示されているようです。
あと、商品名だけ表示させようとして、上記の部分を
var data = json.name;
に変更してやってみると、何も表示されませんでした。
私としては、undefinedと表示されると思っていたのですが....。
引き続き、調べてみますが、何かご助言などありましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
①入力フォーム→②確認表示画面→③...
-
GASでGoogleフォームの自動返信...
-
読み込んだQRコードをフォーム...
-
ジャバスクリプトについて。
-
セレクトを全て選択されていな...
-
ローディングアニメーションの...
-
GASでチェックボックスを一括of...
-
GASに文字列として関数を入れる...
-
初心者です。gulpでコンパイル...
-
var exports = exports || {}; ...
-
ボタンを押したあとに画像を表...
-
IndexedDB を使ってファイルア...
-
React hooksが値を返して配列変...
-
Google scriptについて 至急scr...
-
スマホ上で、左右スワイプで次...
-
ブックマークレットについて
-
jsで、配列内の文章を改行する...
-
追加ボタンを押した際に ok ボ...
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
http上でrequest されたxmlファ...
-
テキストファイルの内容を変数...
-
json形式データのデータ連携に...
-
jsonテキストデータの並び替え...
-
【JavaScript】confirmのボタン...
-
非同期通信を使うタイミングが...
-
DirectXとOpenGLはどちらが動作...
-
HTMLでDBからデータを表形式で...
-
saved from url=(0013)abou
-
リンクを押すとEXEファイルを実...
-
ASP.NET(VB)VBソースからJavas...
-
Javadcriptでwebサーバー側にあ...
-
カーソルの動きに合わせてDBか...
-
Ajaxでpostした内容のresponse...
-
[JavaScript] preven...
-
jQueryのAjaxで通信の途中結果...
-
php ob_flushが全く動作しない
-
webシステムでchrome
-
ローカル用HTMLファイルの安全...
-
JQuery サーバー上にアップする...
おすすめ情報