我有一個帶有復選框輸入的表單,并附加了一個隱藏的“兄弟”輸入,因此我可以根據是否選中該框來生成 2 個不同的值,“0”或“3”。
未選中 = '0',選中 = '3'。
在表單本身以及表單頁面本身,我不想更改這些值。
對于表單中的(計算器)javascript 函式,我需要它們保持“0”和“3”。
這些值代表實際的“價格”值,0.00 美元和 3.00 美元,具體取決于客戶是否選擇在他們的沙拉訂單中包含調味品。
但是......在處理表單輸出和“郵件程式”的php頁面上,而不是輸出“0”或“3”的復選框......我需要它為廚房員工。
未選中 = '否',選中 = '是'。
我在想必須有某種簡單的“0 = 否”和“3 = 是”型別的“轉換”代碼,我可以在 php 端使用。
我嘗試了以下方法,但它總是在接收端只產生一個“是”。永遠不要說“不”,即使該框未被選中。
任何意見,將不勝感激
$dressing = isset($_POST['dressing']) ? 'Yes' : 'No';
"Do you want dressing on your salad? " . $dressing ;
僅供參考,我在下面包含了“附加”輸入欄位的代碼。但同樣,我不認為我需要或不想弄亂它。我感覺問題/解決方案將在 php 處理方面,但我不知所措。
<input type="hidden" id="dressing" name="dressing" value="0"><input type="checkbox"
onchange="this.previousSibling.value=3-this.previousSibling.value; calcuMath();"> Dressing
$3.00
uj5u.com熱心網友回復:
最簡單的解決方案可能只是將復選框本身傳遞給您的 PHP 代碼;然后您可以使用類似于您已有的代碼。所以給它一個名字:
<input type="hidden" id="dressing" name="dressing" value="0">
<input type="checkbox" name="dressingcheckbox" onchange="this.previousSibling.value=3-this.previousSibling.value; calcuMath();"> Dressing
$3.00
并在您的 PHP 中檢查該值:
$dressing = isset($_POST['dressingcheckbox']) ? 'Yes' : 'No';
"Do you want dressing on your salad? " . $dressing ;
uj5u.com熱心網友回復:
它總是產生Yes,因為您檢查設定的值,或者換句話說存在。它始終存在并設定為0或3。您可以在PHP 檔案中了解它
如果 php 端有問題,那么檢查正確的值應該可以修復它。在你的情況下
$dressing = $_POST['dressing'] === '0' ? 'No' : 'Yes';
如果型別不匹配,這可能不起作用,因為===檢查值和型別是否相等。如果發生這種情況,檢查原因的最簡單方法是
var_dump($_POST['dressing']);
檢查 value 是否是我們期望的型別和值。
這一切都假設你不能或不想改變0or 3。根據經驗,我可以告訴你應該只發送有關復選框被選中的資訊,以及關于這意味著什么的所有邏輯應該在一個地方。否則你會得到重復的邏輯,并且必須在 100 個地方進行更改才能將敷料價格從 更改3為5。當您有腳本、多個視圖或將其保存在資料庫中時,情況會變得更糟。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/486175.html
標籤:javascript php html 形式
