Значения $ _POST не меняются от исходного состояния, несмотря на ввод пользователя

У меня есть этот код здесь, в форме:

<form method="post" action="">
 
 <h2><a href="?page=symbiostock-ecommerce-manager&tab=homepage" target="_blank">Home Settings</a><a href="?page=symbiostock-ecommerce-manager&tab=invoices" target="_blank">Invoices</a><a href="?page=symbiostock-ecommerce-manager&tab=VAT" target="_blank">VAT Settings</a><a href="?page=symbiostock-ecommerce-manager&tab=feed" target="_blank">Google Product Feed</a></h2>

 
 <label for="ssem_year_num">Year
 
 </label>
 <label for="ssem_month_num">
 Month
 <select name="ssem_month_num">
 <option value="1">January</option>
 <option value="2">February</option>
 <option value="3">March</option>
 <option value="4">April</option>
 <option value="5">May</option>
 <option value="6">June</option>
 <option value="7">July</option>
 <option selected value="8">August</option>
 <option value="9">September</option>
 <option value="10">October</option>
 <option value="11">November</option>
 <option value="12">December</option>
 </select>
 </label>

 
</form>

Несмотря на изменение значений в тексте и области выбора, они не изменяются при var_dump($_POST) формы, поскольку результат var_dump($_POST) показывает это:

array (size=3)
 'ssem_year_num' => string '2014' (length=4)
 'ssem_month_num' => string '8' (length=1)
 'submit' => string 'Save Changes' (length=12)

Запустив мой HTML через валидатор w3, кажется, что HTML не сломан, поэтому мне остается удивляться - почему не значения, отражающие пользовательский ввод при представлении?

3 ответа

для входного текста попробуйте следующее:

<label for="ssem_year_num">Year
 
</label>

и в списке выберите свойство "selected":

....
<option value="8">August</option>
....

и посмотреть, что произойдет.


Я думаю, что ваша проблема такова: php - это предварительно обработанный язык.

Если вы захватываете var_dump($_POST) на той же странице, ничего не должно быть в $_POST так как при загрузке php вы еще не разместили свою форму. поэтому он будет пустым.

поместите ваш php в отдельный файл и вызовите его через action="submit.php", затем используйте var_dump($_POST) и увидите, что он работает!


Попробуйте переименовать:

к

И посмотрите, разрешит ли это вопрос. Я предполагаю, что на странице присутствует javascript, слушающий событие form.submit.

licensed under cc by-sa 3.0 with attribution.