无法在不重新加载页面的情况下提交表单

not able to submit form without page reloading

本文关键字:情况下 表单 提交 加载 新加载      更新时间:2023-09-26

我希望使用以下代码来提交表单而无需重新加载页面,但它重新加载了整个页面,并且在控制台中签入脚本.php页面时也没有被执行。

索引.php页上的代码

<script>
    $(function() {
        $(".submit").click(function() {
            var name = $("#name").val();
            var dataString = 'name=' + name;
            console.log(dataString);
            $.ajax({
                type: "POST",
                url: "script.php",
                data: dataString,
                success: function() {
                    $('#result').html(response);
                }
            });
            return false;
        });
    });
</script>
<form method="post" name="form">
    <input id="name" name="name" type="text" />
    <input type="submit" value="Submit" class="submit" />
</form>
<div id="result"></div>

脚本.php页面上的代码

<?php
$name=$_POST['name'];
echo $name;
?>

任何人都可以告诉我如何在不重新加载页面的情况下提交表单,并在索引.php页面上显示脚本.php页面的结果

更新函数。 在函数中传递事件对象。 并使用 event.preventDefault() 来阻止默认提交操作。

$(".submit").click(function(e) {
e.preventDefault();

试试这个

<script>
$(function() {
    $(".submit").click(function(event) {
        event.preventDefault();
        var name = $("#name").val();
        var dataString = 'name=' + name;
        console.log(dataString);
        $.ajax({
            type: "POST",
            url: "script.php",
            data: dataString,
            success: function() {
                $('#result').html(response);
            }
        });
        return false;
    });
});

<input type="button"  class="submit" />Submit

您需要将数据从脚本.php页发送回索引.php页。为此刷掉一点点 ajax:

  $.ajax({  
            type: "POST",  
            url: "script.php",  
            data: "datastring",
            dataType: "json",
            success: function(dataType){  
                $("#result").html(dataType); 
            }       
        }); 

在脚本中.php:

<?php
   $name=$_POST['name'];
   echo json_encode($name);
?>

不要混合表单submit和按钮click

如果您是buttonclick事件,请使用type="button",如果您正在执行$("form").submit()则使用type="submit"

还要检查

$(".submit").click(function(e) {
e.preventDefault();

并检查您的ajax帖子data,执行

$.ajax({
            type: "POST",
            url: "script.php",     
            //changes made here           
            data: { name: $("#name").val()},
            //changes made here. you have not written response
            success: function(response) {
                $('#result').html(response);
            }
        });

与其侦听输入的click事件,不如侦听表单的submit

<script>
$(function() {
    $("#name-form").on('submit', function(e) {
        e.preventDefault(); // prevent form submission
        var name = $("#name").val();
        var dataString = 'name=' + name;
        console.log(dataString);
        $.ajax({
            type: "POST",
            url: "script.php",
            data: dataString,
            success: function(response) {
                $('#result').html(response);
            }
        });
    });
});
</script>
<form id="name-form" method="post" name="form">
    <input id="name" name="name" type="text" />
    <input type="submit" value="Submit" class="submit" />
</form>
<div id="result"></div>