尽管用户输入,$ _POST值仍未从初始状态改变

时间:2014-08-22 01:49:29

标签: php html forms

我在这里有一个代码:

<form method="post" action="">
   <div id="icon-themes" class="icon32"><br></div>
   <h2 class="nav-tab-wrapper"><a class='nav-tab' href='?page=symbiostock-ecommerce-manager&tab=homepage'>Home Settings</a><a class='nav-tab nav-tab-active' href='?page=symbiostock-ecommerce-manager&tab=invoices'>Invoices</a><a class='nav-tab' href='?page=symbiostock-ecommerce-manager&tab=VAT'>VAT Settings</a><a class='nav-tab' href='?page=symbiostock-ecommerce-manager&tab=feed'>Google Product Feed</a></h2>

   <br />
   <label for="ssem_year_num">Year
   <input name="ssem_year_num" value="2014" type="text" />
   </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>

   <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="Save Changes"  /></p>
</form>

尽管更改了文本和选择区域中的值,但在表单提交时它们似乎没有变化,因为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)

通过w3验证器运行我的HTML后,看起来HTML没有被破坏,所以我想知道 - 为什么在提交时反映用户输入的值不是?

3 个答案:

答案 0 :(得分:2)

输入文本试试这个:

<label for="ssem_year_num">Year
    <input type="text" placeholder="2014" name="ssem_year_num" />
</label>

并在选择中删除“已选择”&#39;属性:

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

看看会发生什么。

答案 1 :(得分:0)

我认为你的问题是: php是一种预处理语言。

如果您在同一页面抓取var_dump($_POST),则$_POST中不应包含任何内容,因为当您加载php时,尚未发布您的表单。因此它将是空的。

将您的php放入单独的文件并通过action="submit.php"调用,然后使用var_dump($_POST)并查看它是否有效!

答案 2 :(得分:0)

尝试重命名:

<input type="submit" name="submit" id="submit">

<input type="submit" name="s1" id="s1">

看看是否能解决问题。 我假设页面上有javascript正在侦听form.submit事件。