2017-04-18 94 views
3

我有一個使用HTML表單並使用JavaScript進行驗證的PHP程序。 HTML表單中包含一個隱藏字段,其中包含一個由PHP設置的布爾值,通過JavaScript進行驗證並傳遞給另一個PHP頁面。如何在PHP,HTML表單和Javascript之間傳遞布爾值

當我嘗試使用PHP布爾值來設置HTML字段的值時,JavaScript將其評估爲空白,因此我使用了1和0並將它們進行了數值比較,現在它可以正常工作。

我的問題是:在這種情況下最好的做法是什麼?如何讓JavaScript在我的PHP驅動的HTML隱藏字段中讀取true/false值而不使用1和0?或者這完全是一個壞主意?

回答

4

好消息是,PHP和JavaScript對於什麼值是真的和假的都有類似的想法。

  • 一個空字符串在兩邊都是假的。一個字符串中包含一些內容(PHP中的0除外)在雙方都是正確的。
  • 編號0在雙方都是錯誤的。所有其他數字在雙方都是真實的。

由於形式的值永遠是字符串,如昆汀在他的回答中指出,一個很好的做法可能是使用空字符串作爲虛假的價值和其他的東西(例如'true')的真正價值。但我認爲您使用01並測試數值的方法是最安全的方法,因爲它不會產生誤導。 (當有人看到'true',他們可能會認爲'false'也將是一個錯誤的值可用

2

表單控件的值將總是是一個字符串。

如果你想要一個布爾值,那麼你必須對它進行編碼莫名其妙然後分析它莫名其妙

使用0或1是非常好的方法。您也可以使用truefalse(您可以在PHP端使用json_encode生成),並通過JSON.parse運行該值。沿着相似的路線有許多其他的選擇。

+0

你可以寫我們如何能夠編碼字符串中的HTML爲布爾值,然後將數據傳遞給PHP腳本 –

+0

@WijaySharma - ?我看過。答案的最後一段。 – Quentin