javascript - 使用 Ajax 在提交表单时保持在同一页面上不起作用

标签 javascript php ajax forms

我正在尝试创建一个表单,当您提交表单时,您会停留在同一页面上并将用户输入发送到 Process.php 和我的数据库。我面临的问题是页面刷新或打开页面 Process.php

我的表单

<form action="process.php" method="post" class="copy" id="formid" enctype="multipart/form-data">

    Project name: <input type="text" name="name"> <br>


        Video: 
        <input type="text" rows="1" cols="40" name="video">
    <br> 
    Svar 1<input type="text" name="answer1"/> 
    <select name="point1">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
    </select>
    <br>
    Svar 2<input type="text" name="answer2"/> 
    <select name="point2">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
    </select>
    <br>
    Svar 3<input type="text" name="answer3"/> 
    <select name="point3">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
    </select>
    <br>
    Svar 4<input type="text" name="answer4"/> 
    <select name="point4">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
    </select>
    <br>



       <br>
    <input type="submit" name="submit" value="create question" id="submit">
    </form>

Process.php

<?php
// Exempel 1: Lägga till 

if (isset($_POST['submit'])){

$localhost = "localhost";
$username = "root";
$password = "";

$connect = mysqli_connect($localhost, $username, $password)or 
die("Kunde inte koppla");

mysqli_select_db($connect, 'wildfire');


$name=$_POST['name'];
$video=$_POST['video'];
$answer1=$_POST['answer1'];
$answer2=$_POST['answer2'];
$answer3=$_POST['answer3'];
$answer4=$_POST['answer4'];

$point1=$_POST['point1'];
$point2=$_POST['point2'];
$point3=$_POST['point3'];
$point4=$_POST['point4'];




$sql1= "INSERT INTO question (answer, point) VALUES ('$answer1', '$point1')";

$result=$connect->query($sql1);

$sql2= "INSERT INTO question (answer, point) VALUES ('$answer2', '$point2')";

$result=$connect->query($sql2);

$sql3= "INSERT INTO question (answer, point) VALUES ('$answer3', '$point3')";

$result=$connect->query($sql3);

$sql4= "INSERT INTO question (answer, point) VALUES ('$answer4', '$point4')";

$result=$connect->query($sql4);

print $sql1;
print $sql2;
print $sql3;
print $sql4;

}


?>

Javascript

$(function () {

        $('form').on('submit', function (e) {

          e.preventDefault();

          $.ajax({
            type: 'post',
            url: 'process.php',
            data: $('form').serialize(),
            success: function () {
              alert('form was submitted');
            }
          });

        });

      });   

最佳答案

也许这可以解决问题(从 this other SO question 复制答案,并注明@HarveyARamer):

My best guess is that you are adding your form submit listener before the form is actually rendered. Try wrapping your jQuery in $(document).ready(function () {});

关于javascript - 使用 Ajax 在提交表单时保持在同一页面上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34288272/

相关文章:

php - 使用 PHP 选择并显示 MYSQL 列名

php - Codeigniter 如何避免重复显示一对多关系

javascript - Braintree 付款不适用于 AJAX 提交

javascript - D3.js - 在鼠标悬停时更改元素的不透明度 IF 条件 = false

javascript - 如何选择图像背面的文本?

php - 如何使用 AJAX 从复选框获取值并传递到 PHP 页面

javascript - 为什么我的选择列表不显示?

javascript - Ajax 函数未调用

javascript - 如何将不同的元素 ID 传递给同一个函数?

javascript - 一次仅突出显示一个元素的简单功能