2017-10-09 113 views
1

我目前正在做一个自我处理的形式来显示允许用户输入数量的产品。我将保存数量在设置多个,如果条件在php

$_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"; 

我也有在表格的开头代码设置$错误,虚假的,如果$错误是真实的,它会显示一条错误消息。然而,它也没有工作,因为当我键入垃圾将触发if语句,如“agfasgs”或“-1”

 $errors = false; 
    if ($errors == true) { 
print "Please enter postive whole numbers for quantity <br><br>";} 

谢谢你的帮助不会显示错误消息!

回答

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 
+0

我有5只在$ _POST ['qty_entered']这就是为什么我希望它引用第一个数量,即[0]。然而,==修复了我收到的致命错误。谢谢!但是,如果在数量为 –

+0

Pleasure中发现错误,我仍然遇到不设置$ errors = TRUE的问题。请标记我的答案为接受:) – Akintunde007

+0

我仍然卡在代码的最后部分设置$ errors = TRUE if if条件不满足。var_dumping $ errors即使我输入了一些奇怪的东西例如-1或sagsad –

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) {