2016-05-29 10 views
0

テーブルから表示されるドロップダウンから値を取得しようとしています。php - 値を取得中にドロップダウンから値を選択していますか?

私はdiffの方法で試しましたが、どこが間違っているのか分かりません。

私にこれを手伝ってもらえますか。

以下は私のコードです。

<tr class="form-field" id="appid"> 
<div> 
<th valign="top" scope="row" > 
<label for="country"><?php _e('country', 'custom_table_example')?></label> 
</th> 
<td> 
<select id="country" name="country" class="code" >; 
<option value="">select country</option> 
<?php 
global $wpdb; 
$coun_name = $wpdb->get_col("select country_name FROM countries") ; 
//print_r($coun_name); 
foreach($coun_name as $a) 
    { 
echo '<option value="'. strtolower($a) .'" />' . "$a </option>"; 

    } 
    ?> 
</td> 
</div> 
</tr> 

上記のコードは値をドロップダウン表示しています。

問題は私が選択した値を取得する必要があります。

echo '<option value="'. strtolower($a) .'"<?php echo $item['country']==".$a."?'selected="selected"':'' ?> />' . "$a </option>"; 

$ itemはすべてのデータを格納する変数です。

country = name属性。

答えて

1

$item$_POSTに設定しましたか?フォームアクションとしてPOSTを使用していますか?次のようにしてください:

<form name='countryTest' method='POST' action='<?/*where your action is going to*/?>'> 
    <select name='country'> 
    <?foreach($coun_name as $c){ 
     ?><option value='<?echo$c;?>'<?if($_POST['country']==$c)echo' selected="selected"';?><? 
    }?> 
    </select> 
</form> 

OR!あなたが本当にクールでありたいなら(そうではなく、クールではないがナーディー)!あなたのためにこれをすべて行うための関数またはクラス関数を作成してください!今

class formHelper{ 
    public function select_form($name,$options=array([0]=>'Please select'),$selected=array(),$multiple=false){//name of select, options, selected options, multiple select 
     if(!is_array($selected))$selected=array($selected); 
     $sel='<select name="'.(($multiple===true)?$name.'[]':$name).'"'; 
     if($multiple===true)$sel.=' multiple'; 
     $sel.='>'; 
     foreach($options as $value=>$shown){ 
      $sel.='<option value="'.$value.'" '.((in_array($value,$selected))?'selected="selected"':'').'>'.$shown.'</option>'; 
     } 
     return$sel.='</select>'; 
    } 
} 

使用するには、ちょうどこの

$coun_name=array(merge(array('Please select a country'),$coun_name)); 
formHelper::select_form('country',$coun_name,$_POST['country']); 

EDIT

あなたのエラーは、あなたが低下するためにあなたの値を設定したさんが、あなたはそれを下げていない比較しているとき。 strtolowerを参照してください。あなたがしたいことは、どちらも低いと$itemの両方を比較することです。

array(
    [1]=>'England', 
    [2]=>'Wales', 
    [3]=>'Scotland' 
); 

自分の価値観が

<option value='1'>England</option> 
<option value='2'>Wales</option> 
<option value='3'>Scotland</option> 

されるように、しかし、あなたがた、あなたの問題は$item['country']==$a次のとおりです。このように比較したとき、私は整数を使用してお勧めします。 $item['country']==strtolower($a)にする必要があります。そして完全な停止で文字列引用符を削除します。 "england"".England."と等しくありません。あなたが既に文字列を低く設定しているので、それはすでに "イングランド"の理由です。 $item$_POST['county'] '

+0

でない限り、私は投稿を編集していません。 – JMR

+0

私はこれを試します.. – JMR

+0

$ itemは設定されていますか?あなたは国のためにテーブル上に整数を持っていますか? – sourRaspberri

関連する問題