PHP + AJAX表单提交不起作用

时间:2016-04-14 15:08:11

标签: javascript php jquery ajax forms

我对AJAX的概念完全陌生,但发现需要它才能完成我要做的事情。基本上我只需要在发生帖子时将php变量 $ submitted 设置为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;
}

?>

3 个答案:

答案 0 :(得分:0)

尝试这样做:

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

&#13;
&#13;
1/1/2017
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试使用以下代码。

当您成功正确填写表单的所有字段并点击提交时,它会提示您使用js警报。 PHP to 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>";

答案 2 :(得分:0)

当您设置PHP变量时,它会在PHP脚本完成后立即消失。但是,如果您使用PHP $_SESSION变量,它将保持不变。

要使用PHP $_SESSION变量,只需在所有PHP脚本的顶部添加session_start()即可。请注意,session_start()必须是第一个指令 - 如果发送了任何其他PHP标头,则session_start()将无效。

因此,让你的其他PHP文件也测试$_SESSION['submitted']变量(再次,session_start()需要在顶部)以确保可以运行数据库插入。

<强> 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示例的另一篇文章。试试吧。

Prevent Page Load on Jquery Form Submit with None Display Button