2017-10-04 180 views
0

我回聲(使用Chosen JS)有這個易於PHP選擇:HTML多選擇選擇JS提交表單

echo" <tr> 
<th>By country:<br /> 
<select id=\"firstselect\" name=\"country[]\" 
    data-placeholder=\"Country...\" multiple class=\"chosen-select\"> 
     <option value=\"dontcare\">dontcare</option>"; 
     foreach ($states as $state) { 
      echo "<option value=\"" . $state->stat . 
       "\" >" . $state->stat . "</option>"; 
     } 
echo "</select> </th></tr>"; 

從提交和未作爲選擇清爽的頁面值之後。

如果我有選擇,只有一個選擇,這是爲我工作:

var my_val = '<?=$_POST['price']?>'; 
$("#cenan").val(my_val).trigger("chosen:updated"); 

,但我不知道如何在陣列的情況下,選擇設置。你能幫我,給我看一些代碼嗎?我花了幾個小時,沒有任何結果。

回答

0

您正在將表單數據發佈到同一頁面然後刷新它,對嗎?

如果是這樣,那麼您可以稍微更改您的PHP,以便在頁面刷新時通過檢查其值是否存在於$_POST['country']陣列中來標記所選的選項。

此外,由於您將回聲輸出用雙引號括起來,因此無需轉義變量,因爲無論如何PHP都會解析它們,只需在HTML中需要引號的字符串中使用單引號即可。在眼睛上更容易。

foreach ($states as $state) { 
    if ((!empty($_POST['country'])) && (in_array($state->stat, $_POST['country']))) { 
     echo "<option value='$state->stat' selected>$state->stat</option>"; 
    } else { 
     echo "<option value='$state->stat'>$state->stat</option>"; 
    } 
} 
0

讓假設你有HTML選擇像以下:

<select id='firstselect' multiple class="chosen-select" > 
<option value='a'>A</option> 
<option value='b'>B</option> 
<option value='c'>C</option> 
</select> 

這裏是解決方案:

<?php 
$arr = ['a','b']; // PHP Sample Array 
?> 


var js_json = '<?php echo json_encode($arr); ?>'; 
var js_json_string = JSON.stringify(js_json); 
var js_json_array = JSON.parse(js_json_string); // ['a','b'] 


// initialize 
$("#firstselect").chosen(); 

// Loop for making HTML <select> options selected. 
$.each(js_json_array,function(i,v){ 
$('#firstselect option[value=' + v + ']').attr('selected', true); 
}); 

//Updating Chosen Dynamically 
$("#firstselect").trigger("chosen:updated");