$ _POST在与

时间:2016-12-19 15:28:13

标签: php html forms html-input html-form-post

我在同一页面上遇到html表单和PHP的问题。这是我刚写的代码的一部分:

这是我想通过单击提交按钮在数组中插入ID的表单。提交表单时, menge 的值始终为空。有人知道为什么会出现这个问题吗?

echo '<form name="aanzahl" method="POST" action="index.php?page=einzelansicht&id='.$a_id.'">';
echo '<input id="inputButton" type="text" name="menge" value="1" size="2" maxlength="2" disabled>';
echo '<input type="submit"  class ="warenkorbbtn" name="warenkorbbtn" value="In den Warenkorb">';
echo '</form>';

if(isset($_POST['warenkorbbtn'])){
    if (!isset($_SESSION['warenkorb'])){
        $_SESSION['warenkorb'] = array();
    }

    $_SESSION['warenkorb'][] = array('warenkorb_id'=>$a_id, 'menge'=>$_POST['menge']);
    echo "Artikel befindet sich nun im Warenkorb";
}

2 个答案:

答案 0 :(得分:2)

如果将disabled属性设置为输入元素,那么当您触发&#34;提交&#34;时,不会发送该元素的值。行动。 尝试删除disabled属性以获取字段值。

答案 1 :(得分:0)

属性已禁用的表单元素的值不会随表单一起发送:

  

此布尔属性表示表单控件不可用于交互。特别是,不会在禁用的控件上调度click事件。此外,禁用控件的值不会随表单一起提交。 1

为了使用表单发送的值仍然阻止用户修改值,请使用属性readonly(尽管没有任何东西可以防止用户使用浏览器控制台更改/删除该属性)。

<input id="inputButton" type="text" name="menge" value="1" size="2" maxlength="2" readonly />

如果您不关心用户甚至看到输入,您可以输入类型隐藏(即(input type="hidden" />),尽管用户仍然可以更改值使用他们的浏览器控制台。

您可以看到使用this phpfiddle演示的只读属性,其中 readonly 属性已在该输入上设置。

另请注意,输入元素没有允许的内容,因此是[空元素],所以我将斜杠添加到元素的末尾,以便正确关闭它(即{{ 1}})。

  

在HTML中,在空元素上使用结束标记通常无效。例如,HTML无效。 2