我目前正在制作一个自我处理表单,以显示允许用户输入数量的产品。然后我会将数量保存在
中$_POST['qty_entered']
当用户按下提交按钮时。但是,我还有一个if语句,以确保用户输入有效数量
if (is_numeric($_POST['qty_entered'][0]) && is_int($_POST['qty_entered'][0]) && $_POST['qty_entered'][0] > 0) {
print "'<tr><td>' test '</td>'";
}
else {
$errors = true}
然后,只有在按下提交按钮并且用户输入有效数量后,才能在同一页面上打印包含发票的表格。但是,此代码无效:
if (array_key_exists ('submit_button', $_POST)) && $errors = false{
print "Invoice";
我还在表单的开头有一个代码将$ errors设置为false,如果$ errors为true,它将打印一条错误消息。但是,它也无法正常工作,因为当我输入会触发if语句的垃圾时,它不会显示错误消息,例如“agfasgs”或“-1”
$errors = false;
if ($errors == true) {
print "Please enter postive whole numbers for quantity <br><br>";}
感谢您的帮助!
答案 0 :(得分:1)
此行未正确插入括号。您还需要==
或===
(这会强制执行严格检查)您当前分配变量的内容。你需要检查一下。
===
运算符应该比较确切的内容相等,而==
运算符会比较语义相等
if (array_key_exists ('submit_button', $_POST)) && $errors = false{//This should have thrown an error though(FATAL)
应该是
if (array_key_exists ('submit_button', $_POST) && $errors == false){
另外,仅供参考,不应该这一行
if (is_numeric($_POST['qty_entered'][0]) && is_int($_POST['qty_entered'][0]) && $_POST['qty_entered'][0] > 0) {
是这样的:?
if (is_numeric($_POST['qty_entered']) && is_int($_POST['qty_entered']) && $_POST['qty_entered'] > 0) {//access the post data properly
答案 1 :(得分:0)
php
if (array_key_exists ('submit_button', $_POST)) && $errors = false{
print "Invoice";
无效PHP:您的问题是错误的,并且您将false
分配给$errors
(您希望==
,而不是=
)
if (array_key_exists('submit_button', $_POST) && $errors == false) {