回覆列表
  • 1 # 使用者9339391358504

    你把表單form的提交方法method從POST換成GET,你就能在URL清楚地看到每次提交的內容了,這樣更方便新手理解.不過你也可以在瀏覽器提供的F12開發者工具的網路裡檢視到請求的GET/POST/請求頭等資訊.

    PHP是HTML預處理器,瀏覽器首次載入test.php頁面,伺服器PHP其實並沒有拿到使用者提交的資料,也就是首次訪問生成的HTML頁面裡的內聯JS程式碼裡的alert()是沒有使用者資料的,在你提交表單後才有,所以會出現你說的"頁面JS總是獲取到前一次請求的值".

    最後再說個安全性問題,你的程式碼中,$_POST["one"]是一個使用者輸出的資料,在你把使用者輸入的資料輸出到頁面上時,需要注意防禦XSS注入,防禦方法如下:

    如果你是把使用者輸入的資料輸出到HTML上下文中,應該這樣:

    如果你是把使用者輸入的資料輸出到JS上下文<script></script>中,應該這樣:

    不過個人還是建議分離JS跟PHP,也就是PHP不要直接輸出內容賦值給JS,這樣JS程式碼可以單獨放到一個JS檔案裡.

    JS可以這樣拿到傳統表單提交裡的資料並進行AJAX提交,以jQuery為例,將傳統form表單提交輕鬆改造為AJAX提交:

    可見HTML傳統表單並不需要修改,JS程式碼裡也沒有混有PHP程式碼,程式設計邏輯就清晰多了.

  • 中秋節和大豐收的關聯?
  • 總是淺睡眠怎麼辦?