Php $\在与表单相同的文档上发布

Php $\在与表单相同的文档上发布,php,html,html-input,forms,http-post,Php,Html,Html Input,Forms,Http Post,我在同一页面上遇到html表单和PHP的问题。这是我刚刚编写的代码的一部分: 下面是我希望通过单击submit按钮在数组中插入ID的表单。提交表单时,menge的值始终为空。有人知道为什么会出现这个问题吗 echo '<form name="aanzahl" method="POST" action="index.php?page=einzelansicht&id='.$a_id.'">'; echo '<input id="inputButton" type="tex

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

下面是我希望通过单击submit按钮在数组中插入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";
}
echo';
回声';
回声';
回声';
如果(isset($_POST['warenkorbtn'])){
如果(!isset($_会话['warenkorb'])){
$\会话['warenkorb']=array();
}
$\u会话['warenkorb'][]=array('warenkorb\u id'=>$a\u id,'menge'=>$\u POST['menge']);
回声“Artikel befindet sich nun im Warenkorb”;
}

如果将
disabled
属性设置为输入元素,则在启动“submit”操作时不会发送该元素的值。
尝试删除禁用的
属性以获取字段值。

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

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

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


如果您甚至不关心用户是否看到输入,您可以将输入类型设置为隐藏(即(
input type=“hidden”/>
),尽管用户仍然可以使用其浏览器控制台更改值

<input id="inputButton" type="text" name="menge" value="1" size="2" maxlength="2" readonly />
您可以看到用演示的readonly属性,其中对该输入设置了readonly属性

还要注意的是,输入元素没有允许的内容,因此是[empty element],因此我在元素末尾添加了斜杠以正确关闭它(即

在HTML中,对空元素使用结束标记通常是无效的。例如,is invalid HTML


一个问题是,您在输入“menge”时已“禁用”…甚至在检查代码之前,我希望您在页面顶部有session_start(),现在它可以工作了。但我希望该字段不可更改。是否仍有办法做到这一点?请参阅我回答中有关该属性的部分。感谢您的帮助:)