簡體   English   中英

多次提交 JQuery 表單而不重新加載頁面

[英]Submit JQuery form multiple times without reloading page

我試圖讓我的 jquery 表單允許多次提交,但它不會在選擇后加載。 我有一個網格(比方說 2x2)。 我單擊一個單元格並從 jquery 表單中填寫我的名字。 我單擊提交,我的名字將通過 php 出現在單元格中。 但是,當我單擊另一個單元格時,不會出現彈出窗口。

我已將我的代碼的簡化版本添加到 jsfiddle ( https://jsfiddle.net/7j7wxrpu/ )。

單擊單元格后,您可以從那里看到我的表單是一個彈出窗口:

<table border=1>
<tr><td colspan="11"><center><h2>Away Team</h2></center></td></tr>
        <tr><th class='header-cols'></th><th class='header-cols'><h1>0</h1></th><th class='header-cols'><h1>1</h1></th></tr><tr><th class='header-rows'><h1>0</h1></th><td class='grid-cells'>
                    <a href='#myPopup' data-rel='popup'>
                        <div id='cell' onclick='setCoords(0,0);'>
                            <div class='grid-num'>1</div>
                            <div class='grid-name'>justin9</div>
                        </div>
                    </a>
                    </td><td class='grid-cells'>
                    <a href='#myPopup' data-rel='popup'>
                        <div id='cell' onclick='setCoords(1,0);'>
                            <div class='grid-num'>2</div>
                            <div class='grid-name'>justin10</div>
                        </div>
                    </a>
                    </td></tr><tr><th class='header-rows'><h1>1</h1></th><td class='grid-cells'>
                    <a href='#myPopup' data-rel='popup'>
                        <div id='cell' onclick='setCoords(0,1);'>
                            <div class='grid-num'>3</div>
                            <div class='grid-name'></div>
                        </div>
                    </a>
                    </td><td class='grid-cells'>
                    <a href='#myPopup' data-rel='popup'>
                        <div id='cell' onclick='setCoords(1,1);'>
                            <div class='grid-num'>4</div>
                            <div class='grid-name'></div>
                        </div>
                    </a>
                    </td></tr></table>

<div data-role="popup" id="myPopup" class="ui-content" style="min-width:250px;">
  <form method="post" action="">
    <div>
      <h3>Pick This Square:</h3>
      <label for="name" class="ui-hidden-accessible">Name:</label>
      <input type="text" name="name" id="name" placeholder="Name">
      <label for="email" class="ui-hidden-accessible">Email:</label>
      <input type="text" name="email" id="email" placeholder="Email">
      <input type="submit" data-inline="true" value="Submit">
      <!--<input type='hidden' name='row' value=''>
<input type='hidden' name='col' value=''>-->
      <div id='row-div'></div>
      <div id='col-div'></div>
    </div>
  </form>
</div>

這是它從文件中調用的 php:

<?php
    include_once 'connectmysql.php';

    if(!isset($_POST['name']) || !isset($_POST['email'])){
        //fail because one is blank
        echo "Failed the POSt data: Name: " . $_POST['name'] . " |  Email: " . $_POST['email'];
    }
    else{
        $name = $_POST['name'];
        $email = $_POST['email'];
        $row = $_POST['row'];
        $col = $_POST['col'];
        $tstamp = date("Y-m-d_H:i:s");
        //Write to the sql db
        $conn = ConnectMySQL();
        $sql = "INSERT INTO picks (name,email,paid,row,col,tstamp) VALUES('$name','$email',0,$row,$col,'$tstamp')";
        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
    }
?>

除了我的 php 缺乏安全性之外,還有什么我遺漏的嗎? 為什么彈出框只會彈出一次,直到我刷新頁面。 我還注意到,當我刷新頁面時,它會嘗試將post數據“重新發送”到服務器。 看起來我必須在提交后清理帖子數據,是這樣嗎?

要做到這一點而不重新加載頁面,您應該使用 AJAX 調用 PHP 腳本,該腳本將在數據庫中插入新數據,然后再次查詢數據庫並將新值發送到您的 JavaScript,然后使用 JavaScript 更改單元格的值.

此外,更改 ID 的名稱 - 應具有唯一名稱:cell1、cell2。

暫無
暫無

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

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