あらかじめご迷惑をおかけしておりますが、カスケーディング・セレクト・ボックスは死に至っていますが、私は何の助けにもなりません。私は様々なことを試しましたが、すべてが失敗するように見えますが、私は理由を理解していません。カスケード選択
ここで私が現在持っているjQueryの:
function tester() {
$("select#type").attr('disabled', 'disabled');
$("select#cat").change(function(){
var vid = $("select#cat option:selected").attr('value');
var request = $.ajax({
url: "show_type.php",
type: "POST",
data: {id : vid}
});
request.done(function(msg) {
$("#result").html(msg);
});
request.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
});
}
これらは私が最初に移入するためのコードを取得しようとしていた何のためにあるようselect#type
とselect#cat
とコードの最初の部分を気にしないでください、しかし.change
は.ajax
リクエストのための私のトリガーです。残りのコードでは、単純な返信メッセージを空のdiv#result
にダンプしようとしています。
私はテストを行いました。var vid
が正しく入力されています。
ここで私はajax
を呼び出すためにしようとしているシンプルなPHPファイルです:
<?php
$requ;
if (isset($_POST['id'])) {
$requ = 'Worked';
} else {
$requ = "didn't work";
}
echo $requ;
?>
私はおそらく問題は、私は私のいずれかを与えるためにPHPスクリプトを変更してid
が正しく渡されていませんでしたと思いました$_POST
が設定されているかどうかに関係なく、有効な出力です。
私はそれをテスト中にdiv
にすべてダンプしようとしているので、私はHTMLを投稿しません。スクリプトを実行すると、「エラーが発生しました」というエラーメッセージが表示されます。この特定のjqueryの同行する
function tester() {
$("select#type").attr('disabled', 'disabled');
$("select#cat").change(function(){
$("select#type").html("<option>wait...</option>");
var vid = $("select#cat option:selected").attr('value');
$.post("show_type.php", {id:vid}, function(data){
$("#result").empty().append(data);
}, "json");
});
}
そしてPHP:ここ
ではなく.ajax
の
.post
を使用して、私も試してみました他のjQuery & PHPで再び
$requ = $_POST['id'];
$ret = 'You selected: ' . $requ;
echo json_encode($ret);
を、それをすべて失敗しました。私はまた、json
エンコーディング/パラメータを使わずに上記のコードを試しました。私がやってみたいのは、単純なドロップボックスをカスケード接続することだと思います。 2番目のボックスは、最初のボックスの選択に依存します。私はこのすべてが価値があるとは思えず、ちょうどGET
でページを再投稿し、最初のクリックの結果で新しいセクションまたはdivを作成するためのリンクをPHPに厳密に固執していると思っています。あなたが持っているかもしれない助けや提案は大いに感謝されます、私はこれをすべて理解しようと2日を費やしました。事前にありがとう
どのようなエラーが発生し、何が起こらないのかを説明します。 –
エラーメッセージが表示されるのは、「エラー」です。何らかの理由で、jQueryは '.ajax'または' .post'リクエストを正しく実行していません。ファイル構造はそのままです。show_typeファイルはjsと同じディレクトリにあります。何が起こっていないのか、私はcurrenltyがテストするための設定を持っているので、 'div = 'をPHPファイルにあるメッセージで' id = result'に設定するのではなく、ajaxに失敗しました。 –
私はもともと2番目の選択ボックスに最初の選択ボックスに依存した結果を設定しようとしていましたが、それが失敗し続けたので、私の無限のデバッグの旅で、できるだけ簡単に結果を保持して、問題は、私は今コードとしている:ちょうど空のdivにAJAX/POSTリクエストから 'データ'をダンプしようとしている –