2017-10-09 44 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) {