2011-06-29 13 views
0

私はドロップダウンボックスを使用してフォーム内で選択を行っています。フォーマットポストアクションのPHP文字列

私は4つの値( 'value1'、 'value2'、 'value3'、 'value4')を持っています。それぞれがドロップダウンボックスに表示されます。しかし、私はまた、例えば、すべての4つの値のオプションをしたい、ここで私は現在、私のドロップダウンメニューを描画する機能のために使用しています配列です:

$menuValues("'value1','value2','value3','value4'",'value1','value2','value3','value4'); 

これは、しかし、アクションページの空の変数を生成します。 mysqlクエリを駆動する関数を提供するために、各値の周りに一重引用符を保持する必要があります。だから、二重引用符を使って最初の値を囲んでいるのです。

これは、ドロップダウン機能である:

function frDrop($arr,$frm,$dropTitle) { 
echo "<select name='".$frm."' id='".$frm."'><option value=''>".$dropTitle."...</option>"; 
    foreach ($arr as $key => $value) { 
    echo "<option value='".$value."'>".$value."</option>"; 
    } 
echo "</select>"; 
} 
+0

なぜ "all"オプションを呼び出さないのですか –

+0

4つの値すべてについてオプションとはどういう意味ですか?たとえば、「上記のすべてを選択してください」というテキストがありますか? – T9b

+1

すべての値を選択したことを識別できず、アクションページですべての値を再度取得できますか? – Nightwolf

答えて

1

機能frDropは(ここでそれは明らかではないが)と呼ばれ、引数が何を意味するかだん。しかし、以下の私の答えは、$ arrがドロップダウンオプションを含む配列であると仮定しています。だから、

$arr = array(
"'value1','value2','value3','value4'", 
'value1', 
'value2', 
'value3', 
'value4' 
); 

、私は、上記の私のコメントに推測してきたように、おそらく最初の配列値の一重引用符 - 「『VALUE1』、 『value2の』、 『値3』、 『value4』」 - 関数frDrop()のforeach()内のタグの単一引用符と競合しています。あなたのPHP文を囲む

echo "<option value='".addslashes($value)."'>".$value."</option>"; 

をOR、代わりに単一引用符を使用します。

<option value=''value1','value2','value3','value4''>'value1','value2','value3','value4'</option> 

あなたは、このように単一引用符をエスケープしてみてください。これは、タグが第1の値のために次のようになります方法です。

echo '<option value="' . $value . '">' . $value . '</option>'; 

これが役に立ちます。

+1

よろしくお願いします!あなたは私の仕事が何をしているのかに気付いていました。 – Mathnode

0
function frDrop($arr,$frm,$dropTitle) { 
    $temp ='' 
    $temp.="<select name='".$frm."' id='".$frm."'><option value=''>".$dropTitle."...</option>"; 
     foreach ($arr as $key => $value) { 
     $temp.= "<option value='".$value."'>".$value."</option>"; 
     } 
    $temp.="</select>"; 
    } 
echo $temp