2014-09-18 2 views
0

это часть моего сценария, чтобы изменить значение моего выбора:не может значение с помощью innerHTML

document.getElementById('poids').innerHTML = '<select onchange="peso();" class="form-control" required name="cat_poid"><option value="">Selectioner le poids</option><option value="-24">-24</option><option value="-29">-29</option><option value="-35">-35</option><option value="-41">-41</option><option value="+41">+41</option></select>'; 

Html:

<b>Poids: <div id="poids"><select class="form-control" name="cat_poid" required><option value="1">Selectioner le poids</option></select></div></b> 

Моей проблема заключается в том, что я создаю форму и у меня есть выбор, который изменит значения. Итак, чтобы изменить значения, я использовал innerHTML, и он отлично работал. Но значения не будут отправляться на следующую страницу, на которую отправляется форма.

После вызова сценария содержимое моего DIV изменяется, и у меня есть необходимые значения. Невозможно POST значение, которое поступает из innerHTML.

Может ли кто-нибудь помочь?

+0

обновите свой вопрос с помощью отступов на 4 пробела. – Huafu

+1

, где вы подаете процесс –

+0

это первый раз, когда я отправляю что-то здесь, извините, я не знал про 4 пространства ... Спасибо ... –

ответ

0

Я мог бы создать «грязное решение» ... это довольно уродливо, и я уверен, что есть лучший способ сделать это. Поскольку я отправлял на следующую страницу, но невозможно т.е получить значение я сделал что-то вроде этого:

Просто добавили его в моей форме:

<input type="hidden" name="peso"> 

JavaScript:

function peso(){ 
var elem = document.getElementById("peso"); 
var pesos = document.getElementById("cat_poid").value; 
elem.value = pesos; 
}; 

Мой innerHTML :

document.getElementById('poids').innerHTML = '<select onchange="peso();" class="form-control" 
required name="cat_poid"><option value="">Selectioner le poids</option><option 
value="-24">-24</option><option value="-29">-29</option></select>'; 

и на следующей странице

$poid = $_POST['peso']; 

но если я попытаюсь получить значение как $ _POST ['cat_poid']; Я ничего не имею ... Я даже использовал TemperData от FireFox, чтобы получить точно и отредактировать значение POST, и нет cat_poid.

странно, но «грязное решение» сработало.

Спасибо всем !!!! Solved ^^

0

Чтобы обновить выбранный элемент select, вы должны установить его selectedIndex, на котором основана 0. Кроме того, чтобы добавить/удалить элементы, вы должны создать DOM option элементы и добавить их, или полностью обновить select элемент:

<div id="container"> 
    <select id="select" name="weight"> 
    <option>select the weight</option> 
    ... 
    </select> 
</div> 

манипулировать, что в JS:

// update with innerHTML: 
document.getElementByID('container').innerHTML = '<select...>...</select>'; 
// or add an item with DOM model: 
var option = document.createElement('option'); 
option.text = '35-40'; 
option.value = '35-40'; 
document.getElementByID('select').add(option); 

// to select a specific option: 
document.getElementByID('select').selectedIndex = 1; // selects the 2nd option 
+0

Я пробовал точно, как вы это делали, но все еще не работали. Проблема заключается не в том, чтобы добавлять параметры, а в POST значение параметров. InnerHTML отлично работает, и параметры там с их значением. document.getElementById ('poids').innerHTML = ' '; Когда я отправляю свой ФОРМ, только значения из этого SELECT не будут опубликованы. То, как вы разместили У меня возникла проблема, чтобы заставить его работать, даже не добавляя значение, которое я могу. –

+0

Когда вы говорите сообщение, это сообщение HTML, например, щелчок на 'submit' и наличие браузера, идущего на URL-адрес действия, или это сообщение JS каким-то образом? – Huafu

+0

Точно, у меня есть <действие = метод форма «inscriptions.php» = «POST»>

<входной тип = «отправить» значение = «отправить»> –

0

Не изменяйте div's innerHTML полностью. Просто попробуйте добавить или удалить только параметры.

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