簡體   English   中英

JavaScript中的表單提交按鈕

[英]Form submit button in JavaScript

在我的項目中,我添加了一些JavaScript,以避免用戶多次單擊同一按鈕。 它有一個頁面從注冊頁面中提取數據。 我在每個數據行上添加了一個取消好友按鈕(已禁用)。 用戶單擊添加后,將出現提示框,要求用戶輸入主題並單擊確定。 單擊確定后,可以單擊取消好友按鈕。

這是我的問題:單擊添加按鈕后,出現提示,單擊確定后,數據不會插入數據庫。

如果單擊unfriend按鈕,它將插入數據庫中。 我希望每當用戶單擊添加按鈕時提交數據。 我認為這是因為此表單具有兩個提交按鈕,但我不知道如何區分它們。

這是代碼:

<?php

session_start();
$mysqli = new MySQLi('127.0.0.1','root','','learning_malaysia');
$sql = "SELECT * FROM tutor_register INNER JOIN tutorskill ON tutor_register.register_ID = tutorskill.register_ID";
$result = mysqli_query($mysqli,$sql);

?>
<html>
<script>
function myFunction(form){
    var subject = prompt("Please enter Subject that want to study");
    if (subject != null){
        form['subject'].value = subject;
        form['btn'].disabled = false;
        form['add'].disabled = true;
        form['add'].value = "request sent";

        form['add'].submit();
        return false;
    }
    form['add'].disabled = false;
    form['btn'].disabled = true;
    form['add'].value = "Add friend";
    return true;
}
</script>
<body>
<?php

if(mysqli_num_rows($result)>0)
{
    while($row = mysqli_fetch_array($result))
    {      
        $register_ID = $row["register_ID"];
        $username = $row['username'];
?>

<form method="post" id="form" enctype="multipart/form-data" autocomplete="off"> 
  <td><input type="submit" value="unfriend" id="btn" disabled />
      <input type="hidden" name="id" value="<?php echo $row['register_ID'];?>" />
      <input type="hidden" id="subject" name="subject" data-uid=<?php echo $_SESSION['sid'] ;?>/>
      <input type="submit" onclick="return myFunction(this.form);" name="addfriend" data-type='addfriend' id="add" class="btn" value="add"  />
  </td>
</form>    
<?php
    }
}
?>
<?php

if(isset($_POST['subject']) and $_POST['id']) {
    $user_id = $_SESSION['sid'];
    $friend_id = $_POST['id'];
    $status = "yes";
    $subject = $_POST['subject'];
    $sql = "INSERT INTO friends(user_id,status,subject,friend_id)" ."VALUES('$user_id','yes','$subject','$friend_id') ";

    if($mysqli->query($sql) === true) {
        $_SESSION['status'] = "yes";
        $_SESSION['friend_id'] = $friend_id;
        $_SESSION['user_id'] = $user_id;
    } else {
    }
}
?>                    
    </body>
</html>

您的兩個按鈕均具有type="submit"因此它們都將提交表單。 由於您沒有js代碼來處理unfriend ,因此只需將遇到的值與表單一起提交即可。

另一個按鈕具有myFunction函數,該函數處理不會返回false的單擊。 不要返回false。 您正在執行:

form['add'].submit();
return false;

在表單提交功能中...不需要這兩者,因為如果該處理程序no返回no false,則按鈕將提交表單。

您可以有兩個類型均為“ submit”的輸入按鈕。 您只需要通過使用name屬性來區分兩個服務器端。 另外,在myFunction中,使用form.submit()而不是form ['add']。submit()提交表單。

https://html.spec.whatwg.org/multipage/forms.html#the-form-element

一種形式的兩個提交按鈕

暫無
暫無

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

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