PHP+AAJAX表单提交不起作用

PHP + AJAX Form Submit Not Working

本文关键字:不起作用 表单提交 PHP+AAJAX      更新时间:2024-06-20

我对AJAX的概念完全陌生,但我发现它是完成我要做的事情所必需的。基本上,每当发布时,我只需要将php变量$submited设置为true,这反过来会对我的数据库运行查询。出于某种原因,尽管这段代码对我来说很有意义,但它似乎并没有进入ajax文件,尽管我收到了"成功"警报,而且我没有控制台错误。有什么明显的错误吗?

<form action="call.php" method="post">
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br>
<input class="oomButton submit" type="submit" name="submit" value="submit">
<script>
$(document).ready(function(){
$('.oomButton.submit').click(function(){
    var clickBtnValue = $(this).val();
    var ajaxurl = '/ajax.php',
    data =  {'action': clickBtnValue};
    $.post(ajaxurl, data, function (response) {
        alert("Account Created");
    });
});
});
</script>
</form>

AJAX.PHP

<?php
if (isset($_POST['action'])) {
switch ($_POST['action']) {
    case 'submit':
        submit();
        break;
}
}
function submit() {
$submitted = true;
exit;
}
?>

当您设置一个PHP变量时,一旦PHP脚本完成,它就会消失。但是,如果您使用PHP $_SESSION变量,它将持久存在。

要使用PHP $_SESSION变量,只需在所有PHP脚本的顶部添加session_start()即可。注意,session_start()必须是第一条指令——如果发送了任何其他PHP头,session_start()将不起作用。

因此,让您的另一个PHP文件也测试$_SESSION['submitted']变量(同样,顶部需要session_start(),以确保可以运行DB插入。

HTML/JS:

<form action="call.php" method="post">
    <input class="oomText" type="text" name="accountName" placeholder="Account Name"><br>
    <input class="oomButton submit" type="submit" name="submit" value="submit">
</form>
<script>
    $(document).ready(function(){
        $('.oomButton.submit').click(function(){
            var clickBtnValue = $(this).val();
            var ajaxurl = 'http://clients.oomdo.com/provision/ajax.php',
            data =  {'action': clickBtnValue};
            $.post(ajaxurl, data, function (response) {
                alert(response);
            });
        });
    });
</script>

AJAX.PHP

<?php
    session_start();
    if (isset($_POST['action'])) {
        switch ($_POST['action']) {
            case 'submit':
                submit();
                echo 'Hurrah';
        }
    }
    function submit() {
        $_SESSION['submitted'] = true;
    }
?>

这是一篇包含一些有用的AJAX初学者信息的帖子——它链接到另一篇包含简单AJAX示例的帖子。试试它们。

使用无显示按钮阻止Jquery Form Submit上的页面加载

尝试这样做:

捕获表单submit并通过Ajax进行POST,并删除表单中的操作,您将指向call.php,因此当您提交表单时,操作将转到call.php。

<form id="form" method="post">
<input class="oomText" type="text" name="accountName" placeholder="Account Name"><br>
<input class="oomButton submit" type="submit" name="submit" value="submit">
<script>
$(document).ready(function(){
  
$('#form').on('submit', function(e){
  
    var clickBtnValue = $('.oomButton .submit').val();
    var ajaxurl = 'http://clients.oomdo.com/provision/ajax.php',
    data =  {'action': clickBtnValue};
    $.post(ajaxurl, data, function (response) {
        alert("Account Created");
    });
});
});
</script>
</form>

尝试使用下面的代码。

当你成功地正确填写了表单的所有字段并点击提交时,它会提示你js警报。谢天谢地,PHP到js并不总是需要ajax。注意我是如何将js放在php文件中的。我只是从表单调用中运行整个过程。

mail($toaddress, $subject, $message, $headers);
$success=htmlspecialchars($_GET['to']);
$success=ucwords($success);
$valid= 'sent to' . ' ' . $success . ' ' . 'from a php server. Hit the back arrow' ;
echo "<script type='text/javascript'>alert('$valid');</script>";