[英]Should Javascript Input to HTML form onSubmit with # action to PHP $_GET (all code on same file) work in theory?
我有代碼要求用戶通過此代碼選擇日期:
<script type="text/javascript" charset="utf-8">
var k3 = new Kalendae(document.getElementById("cal"), {
months:3,
format:'DD-MM-YYYY',
mode:'single'
});
</script>
用戶通過javascript選擇日期,然后點擊html提交按鈕:
<form name="input_data" action="#" method="post"
onSubmit="javascript:location.href="#?date_value=" + k3.getSelected();">
此代碼的html動作指示它使用#重新加載同一頁面,以便php可以通過以下方式捕獲它:
$dateValue= $_GET['date_value'];
如果我回顯$ dateValue,它是否應該在理論上回顯原始的javascript輸入? 如果否,則需要如何修改?
只需使用
<form action="" method="post">
應該管用。
假設您將按鈕稱為“保存”(名稱=“保存”)。 這將觸發提交時的PHP。
if (isset($_POST['save'])) { // Your stuff here
相反,您應該在更改時更新您的日歷信息,並將其存儲在隱藏的輸入字段中。 我知道提交帶有哈希標簽的表單會在多個瀏覽器中引起問題。
如果您從表單標簽中刪除#
,如下所示:
<form name="input_data" action="#" method="post"
onSubmit="javascript:location.href="?date_value=" + k3.getSelected();">
該url將被附加?date_value=Whatever
調用?date_value=Whatever
,但是表單將提交並抓取操作並將數據發布到該操作,如果您保留該操作,則該頁面將不會被調用,因此從理論上講,不會因為該原因而丟失get第二頁加載時沒有獲取值,但是您可以通過對表單進行以下編輯來使此頁面正常工作:
<script type="text/javascript">
function edit() {
document.input_data.action = "?date_value="+k3.getSelected();
}
</script>
<body>
<form name="input_data" action="" method="post" onSubmit="javascript:edit();">
...
</form>
</body>
這將把獲取值與表單中的發布值一起發送,您可以通過更新表單中的onSubmit屬性並刪除編輯函數來執行此操作,而無需其他函數,如下所示:
<body>
<form name="input_data" action="" method="post" onSubmit="javascript:this.action='?date_value'+k3.getSelected();">
...
</form>
</body>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.