2011-08-07 1 views
1

私はおそらく、これが必要以上に複雑になり、皆さんが私の頭をクリアするのを助けてくれることを願っています。スペースを含むオプション値を渡そうとすると問題が発生する

私のデータベースでは、値の大部分にスペースが含まれている列挙型フィールドを持つテーブルがあります。現時点では、私は組み合わせ選択を使用しようとしているので、誰かがselect(データベースからphpで取得したenumのすべての値を含む)で何かを選択するたびに、select 2ドロップダウンでは選択されたもので選択された。

これは私が2つの選択を移入するために選択する1の値をつかむために使用していたスクリプトです:

$(function() { 
$("#semester").change(function() { 
    $("#course").load("tester.php?semester=" + $("#semester").val()); 
}); 
}); 

私は列挙型をつかむために使用するスクリプト:長期のような

$optionresult = mysql_result(mysql_query('SELECT column_type FROM information_schema.columns 
WHERE table_name = "item" AND column_name = "'.$columnname.'"'),0); 
$values = explode("','",substr($optionresult,6,-2)); 
for($i = 0; $i < count($values); $i++) { 
echo '<option value="'.$values[$i].'">'.$values[$i].'</option>'; 

何かをSpring2012は合格となり、2012年春のようなものは受け取りません。

オプション値を手作業で入力しなくても、オプション値のスペースを削除してからクエリを実行するときに追加する必要はありませんか?

+0

オプション値にスペースを含めることができます。あなたの問題はどこかにあるはずです。 tester.phpの出力を投稿できますか?また、どちらの場合でも、 'htmlentities'' $ values [$ i] 'をお勧めします。 – Halcyon

答えて

2

$("#course").load("tester.php?semester=" + 
    encodeURIComponent($("#semester").val())); 

encodeURIComponentを試してみてはクエリ文字列にスペースをコードするの世話をします。 "First Semester"を "First%20Semester"に変更します。

サーバはこれを自動的に解読します。 `$ _GET [" semester "]は" First Semester "になります。

+0

私はreplace()メソッドを使用して終了しましたが、これはクリーナーに聞こえます!ありがとう! – ToryT