簡體   English   中英

在提交表單重定向到另一個頁面時刷新頁面

[英]Page refresh on submitting form redirecting to another page

我最近使用以下腳本將Web應用程序項目轉換為單頁應用程序:

function AjaxLoadJQuery(pageToLoad){
        var requestObject = new XMLHttpRequest();
        requestObject.onreadystatechange = function()
        {
            if (requestObject.readyState == 4 && requestObject.status == 200)
            {
                document.open();
                document.write(requestObject.responseText);
                document.close();
            }
            if (requestObject.readyState == 4 && requestObject.status == 404)
            {
                alert('belaj');
            }
        };
        requestObject.open("GET", pageToLoad, true);
        requestObject.send();
    }

我這樣使用它(例如):

<li ><a class="djelatnost" onclick="AjaxLoadJQuery('/servis/Struktura/ostalo.html')">NAŠE USLUGE</a></li>

我將要加載的頁面的URL傳遞給它。

現在,我建立了這樣的聯系表單:

<div id="contact_container" class="container">
        <?php include('C:/wamp/www/servis/Skripte/serverSideValidation.php'); ?>
        <div id="contact_div">
            <form id="contact_form" name="inputForm" method="post" class="formElements">
                Vaše ime<br>
                <input type="text" name="Name" id="cf_name"><span id="nameError"><?php if($_SERVER['REQUEST_METHOD'] == 'POST'){ echo "IMA NESTO JBG"; if(validateName($_POST['Name'])) echo "TESTTEST"; } ?></span><br>
                Vaša e - mail adresa<br>
                <input type="text" id="cf_email" name="Email"><span id="emailError"></span><br>
                Vaša opština<br>
                <input type="text" name="Opstina" id="cf_opstina"><br>
                Vaš grad<br>
                <input type="text" name="Grad" id="cf_grad"><br>
                Vaš broj telefona<br>
                <input type="text" id="cf_brojtel" name="Brojtel"><span id="telefonError"></span><br>
                Predmet poruke<br>
                <select name="Predmet" id="cf_predmet" onchange="setToValueFromCmbBox()">
                    <option value="Ponuda">Ponuda</option>
                    <option value="Kupovina">Kupovina</option>
                    <option value="Pohvala">Pohvala</option>
                    <option value="Zalba">Žalba</option>
                </select><span id="predmetError"></span><br>
                Tip komitenta<br>
                <input name="Tip" type="text" id="cf_tip" disabled><span id="tipError"></span><br>
                Poruka<br>
                <textarea name="Poruka" id="cf_message" >
                </textarea><span id="porukaError"></span><br>
                <input type="submit" id="submitButton" name="submitButton" value="Pošalji" onclick="validateInput();">
            </form>
        </div>
    </div>

如您所見,在服務器端驗證之后,我在輸入元素附近使用了一些跨度來表示最終錯誤(我在客戶端使用setCustomValidity())。

問題是當我按下“提交”按鈕(關閉了javascript,因此我可以測試.php)時,頁面剛剛重新加載,然后轉到地址欄中的頁面(即索引頁面),這意味着一切都已更改。

提交后,我想保留在同一頁面上,同時保留上面使用的腳本(對於單頁面應用程序)。

實際上,我只是將一個動作設置為直接指向同一頁面,現在它可以正常工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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