У меня есть форма с выбранным объектом. Параметры создаются с использованием PHP из базы данных mySQL. У меня также есть "новая" доступность. если пользователь выбирает "новый", я использую функцию jQuery - replaceWith, чтобы изменить объект select на объект типа ввода = "текст".
Все это отлично работает, кроме как после отправки формы PHP $ _POST ['description'] [0] пуст. Почему это так? Ниже я скопировал привязку объекта select и jQuery.
JQuery:
$(function() {
$('select#description').change(function() {
if ($(this).val() == 'new')
var x = $(this).attr('name');
$(this).replaceWith('<input type="text" name="description" id="description">');
$('input#description').attr('name', x);
$('input#description').attr('id', x);
});
});
HTML/PHP:
<td>
<select id='description' name='description[$i]'>
<option value=''></option>
<option name='[$i]' value='new'>new</option>";
echo $list = $this->desc_list();
echo " </select>
</td>
Это результат, который я ищу:
<select id='description' name='description[0]'>
<option value></option>
<option value='new'>new</option>
<option value='1'></option>
</select>
Если value = '1', нет описания, потому что, когда PHP сохранил последнюю запись, он был пуст. Когда пользователь выбирает "новый", код меняет объект select на это:
<input type='text' name='description[0]' id='description[0]'>
Код следующей страницы может быть простым, как
echo $_POST['description'][0]
Но он не будет повторять то, что было напечатано в текстовом поле. Почему последняя запись пуста?
Когда ответ был принят: решение, описанное ниже, неверно. Соответствие в комментариях этого ответа, похоже, привело к решению.
Ваша проблема заключается в том, как вы пытаетесь откликнуться на POST-переменную: echo $_POST['description'][0]
никогда не будет предоставлять значение вашего ввода-текста, так как имя этого поля будет "description [0] ", поэтому вам нужно будет вызвать echo $_POST['description[0]']
.
Если это не решит вашу проблему и вы не знакомы с var_export: попробуйте поместить print_r($_POST);
выше/ниже вашего while-loop в page2.php и сообщить нам о выходе.
Поскольку вы заменили "описание [$ i]" на "описание",
var_export($_POST)
? Есть что-нибудь связанное сdescription
там?