dポイントプレゼントキャンペーン実施中!

セレクトボックスの値を受け取りPOST送信
<HTML側>
function SelValue(){
var x = $('#category1').val();
$.ajax({
type: "POST",
url: "category.php",
data: {"prm":x},
dataType: "json",
success: function(data, status){
alert(data.address1 + data.address2);
},
error: function(XMLHttpRequest, status, errorThrown){
alert("エラーが発生しました!");
}
});
}

以下category.php
if(!$_POST)
header("Location: input.php");
$CATEGORY2 = array(
1 =>array(
1 => "a",
2 => "b",
3 => "c",
),
2 => array(
1 => "d",
2 => "e",
3 => "f",
),
3 => array(
1 => "g",
2 => "h",
3 => "i",
),
);
$ary = array();
if($_POST["prm"]){
for($i=1;$i<=3;$i++){
foreach($CATEGORY2[$i] as $key => $value){
if($key == $_POST["prm"])
$ary = $CATEGORY2[$i];
}
}
}
json_encode($ary);
としています。
PHPにPOSTしたデータも確認できないし
jsonデータを表示できないです。
どのようにしたらいいかわかりません。
ajax初心者でわからないことだらけです。
教えてください。

A 回答 (2件)

No1 回答の補足(確認)です。


・jQueryライブラリーを使っているのですよね。
・var x = $('#category1').val();で、セレクトボックスで選んだ
 value値がxにきちんと取れてますよね。(xは"1"か"2"か"3"のはず)
 ※この部分があやしそうですが、ご提示の部分だけではわかりかねます。
  x="1";とかしてまずテストしてみて下さい。
・url: "/php/category.php",はurl: "category.php",に戻し忘れました。
・ご提示のalert(data.address1 + data.address2);ですが、
 address1とかaddress2はどこにも登場していません。いきなり出てきてます?

この回答への補足

・jQueryライブラリーを使っているのですよね。
→jquery.jsを利用しています。
・・var x = $('#category1').val();で、セレクトボックスで選んだ
 value値がxにきちんと取れてますよね。
→alert(x);とすると選択したセレクトボックスのvalueが表示されています。
・ご提示のalert(data.address1 + data.address2);ですが、
 address1とかaddress2はどこにも登場していません。いきなり出てきてます?
→参考としたサイトの表記の消し忘れです。すみません。
1.現在の段階でpostされた数値の確認ができない。
2.何度やってもエラーのレスポンスしか帰ってこない。
という状況です。
何がおかしいのかもわからなくなってきました。
よろしくお願いします。

補足日時:2009/10/23 10:43
    • good
    • 0
この回答へのお礼

原因がわかりました。
category.phpの
配列を作成する部分がおかしかったです。
$ary = array();
if($_POST["prm"]){
for($i=1;$i<=21;$i++){
if($i ==$_POST["prm"] )
$ary = $CATEGORY2[$i];
}
}
こうすればよかったんです。
すみません。
本当に助かりました。
次はDOMでセレクトボックスの作成です。

お礼日時:2009/10/23 11:46

==========================


javascript側 
==========================
function SelValue(){
var x = $('#category1').val();
$.ajax({
type: "POST",
url: "/php/category.php",
data: {"prm":x},
dataType: "json",
success: function(data, status){
alert("key=1の値" + data["1"] );
alert("key=2の値:" + data["2"] );
alert("key=3の値" + data["3"] );
},
error: function(XMLHttpRequest, status, errorThrown){
alert("エラーが発生しました!");
}
});
}

========================
category.php
========================
<?php
$CATEGORY2 = array(
1 =>array(
1 => "a",
2 => "b",
3 => "c",
),
2 => array(
1 => "d",
2 => "e",
3 => "f",
),
3 => array(
1 => "g",
2 => "h",
3 => "i",
),
);
$ary = array();
if($_POST["prm"]){
for($i=1;$i<=3;$i++){
foreach($CATEGORY2[$i] as $key => $value){
if($key == $_POST["prm"])
$ary = $CATEGORY2[$i];
}
}
}
echo json_encode($ary);
?>
です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!