2011-11-10 5 views
0

このコードは現在動作しているようです(現在選択されているAjaxを取得中)。しかし、今私は別の問題があります。私はPHPの_ _GETメソッドを(後でデータベースの検索のために)使用すると、出力はちょうどドロップダウン選択された単語ではなく、別のドロップダウンメニューを生成します。 WAMPエラー - GET用のundefinexインデックスもあります。シンプルなAJAXドロップダウン2

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#select").change(function(){ 
     $.ajax({ 
       url: "test.php?selected=" +$(this).val(), 
       success:function(data){ 
        $("#results").html(data); 
       } 
      } 
     ) 
    }) 
}); 
</script> 
<select id="select"> 
<option> something </option> 
<option> something2 </option> 
<option> something3 </option> 
</select> 

<?php 

echo $_GET['selected']; 

?> 

<div id="results"></div> 

答えて

1

値を持っている必要があります。 selectedキーが$_GETコレクションに存在しないため、初期ページの読み込み時に未定義のインデックスエラーが発生します。あなたのtest.phpファイルの先頭に

<?php 
    if(array_key_exists('selected', $_GET)) 
    { 
     echo $_GET['selected']; 
     die(); 
    } 
?> 

は、次にあなたの例では、後に自分のエコーを除去します。

この例ではのみを使用しています。整形式のAJAXリクエストの例を与えることはできません。

+0

ありがとうございました。だから、あなたは最高の解決策として何を提案しますか?アイテムがドロップダウンリストから選択されたときにデータベースからデータをフェッチして、サイトを更新せずに即座に表示したいと思います。 –

+0

@genesisが示唆しているように、あなたの 'option'要素に' value'を使い、投稿されたデータを処理するとき(私の答えから 'if'文を見てください)、投稿されたデータを使ってあなたのデータベースに問い合わせます。 '$ .ajax' jquery呼び出し、' get'とは対照的な 'post'、一般的なPHPチュートリアルを読むことをお勧めします。 –

+0

大丈夫、ありがとうございます:) –

2
<option> 

あなたがポストバックを占めずにAJAX呼び出しに自己を参照しているため、問題が生じている

<option value="test"> 
0

echo $_GET['selected'];は表示されますか?
いくつかのPHPコードも提供できますか?

undefinex index for GETの場合は、配列$_GETにはselectedという名前のキーが含まれていないことを意味します。 selectedはどこから来たのですか?
あなたが私たちからいただいたJavaScriptのものであれば、代わりにselectにする必要があります。 (selectの名前をselectとすることはお勧めできません)

+0

それは私が持っているすべてのPHPコードです。私はPHPが選択されたオプション(ajaxを介して)を取得し、データベースをチェックすることを達成しようとしていました。私は後でデータベースのことをやろうとしていました。その複雑ではない:) –

関連する問題