簡體   English   中英

從理論上講,將HTML輸入為HTML形式的onSubmit和對PHP $ _GET的#動作(同一文件中的所有代碼)是否可以正常工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM