2010-11-15 3 views
0

У меня есть список выбора с несколькими вариантами, в который я вставляю элементы, используя javascript. В какой-то момент мне нужно получить значения всех записей (как выбранных, так и невыбранных). настоящее время я использую этот код:Получить все множественные значения списка

<form method="post" action="?page=test" name="something"> 
<select name="thelist[]" id="selOriginalWindow" size="5" multiple="multiple"> 
</select> 
<input type="button" value="Добави" onclick="openInNewWindow();" /> 
<input type="submit" value="Get" /> 
</form> 

    <? 
if ($_GET['page']=="test") { 
    $thelist=$_POST['thelist']; 
    var_dump($thelist); 
} 
    ?> 

Javascript вставляет значения, но PHP только получает значение выбранных элементов. Как получить значение всех элементов в этом списке?

ответ

2

Это сделал трюк:

function selectAll(selectBox,selectAll) { 
    if (typeof selectBox == "string") { 
     selectBox = document.getElementById(selectBox); 
    } 
    if (selectBox.type == "select-multiple") { 
     for (var i = 0; i < selectBox.options.length; i++) { 
      selectBox.options[i].selected = selectAll; 
     } 
    } 
} 
</script> 
<form method="post" action="?page=test" name="something"> 
<select name="thelist[]" id="selOriginalWindow" size="5" multiple="multiple"> 
</select> 
<input type="button" value="Добави" onclick="openInNewWindow();" /> 
<input type="submit" value="Get" onclick="selectAll('selOriginalWindow',true)" /> 
</form> 

    <? 
if ($_GET['page']=="test") { 
    $thelist=$_POST['thelist']; 
    var_dump($thelist); 
} 
    ?> 
+0

@DreamWave, но как теперь вы можете различать, что выбрал пользователь и что выбрал код? Какой смысл выпадать, если вы автоматически выбираете все? –

+0

Идея состоит в том, что в начале списка список пуст. Пользователь нажимает кнопку, которая открывает новое окно, в котором он выбирает в трех разных раскрывающихся списках. Затем результат форматируется и вставляется в первом окне как форматированное значение и текст. Пользователь сделал свой выбор, тогда мне нужны все записи. В конце концов, это будет транспортная система - мне нужно это, чтобы пользователь мог выбрать страну, область и город .. но так как между ними есть много комбинаций - так я решил, что это должно быть похоже на , Извините, если я не очень хорошо объяснил в своем посте. – DreamWave

+0

@DreamWave, так зачем спускаться? Это немного запутывает для пользователя, что он может выбирать элементы, но он не имеет смысла. Поместите его как чистый текст вместо этого. –

1

Почтовая переменная будет содержать только те значения, которые вы выбрали, поэтому, если вы хотите использовать ту же методологию для отправки ВСЕХ значений, вам нужно будет добавить дополнительное поле в форму, которая включает ВСЕ значения. Затем вы можете прочитать все значения.

Один из способов будет использовать <input ='hidden' value='arrayofallvalues' name='allvalues'/>

Таким образом, вы могли бы иметь следующее:

<? 
$select_values=array('value1', 'value2','value3'); 
?> 

<form method="post" action="?page=test" name="something"> 
<select name="thelist[]" id="selOriginalWindow" size="5" multiple="multiple"> 
<? 
for ($i= 0; $i< count($select_values); $i++) { 
    echo "<option value=".$select_values[$i].">".$select_values[$i]."</option>"; 
} 

?> 
</select> 
<input ='hidden' value='".implode(",",$select_values)."' name='allvalues'/> 
<input type="button" value="Добави" onclick="openInNewWindow();" /> 
<input type="submit" value="Get" /> 

</form> 

    <? 
if ($_GET['page']=="test") { 
    $thelist=$_POST['thelist']; 
    $all_select_values=explode(",",$_POST['allvalues']); 
    var_dump($thelist); 
} 
    ?> 

Что это будет сделать, это означает, что каждый раз, когда форма представляет, вы можете использовать взорваться() для создания массив доступных значений для окна selct.

+0

Да, я обычно использую этот код, но на этот раз я не могу. Значения, введенные в selectbox, уникальны и неизвестны с помощью php. Пользователь выбирает их и вставляет их через javascript. Вот почему часть параметров отсутствует в моих вариантах кода, динамически вставлены. Может быть, мне нужно вставить javascript, который выберет все значения при нажатии кнопки отправки? – DreamWave

Смежные вопросы