使用ajax将数据从php发送到mysql,无需重新刷新或重新加载

des4xlb0  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(344)

我没有找到任何东西,我只找到了带有文本字段的表单。
我的问题是:我有两个按钮调用后端php代码(setvote.php)。

$ipid = $row['ipid'];
$confirmed = 0;
$fake = 0;
if (isset($_POST['confirmedVote'])) {
    $confirmed = 1;
} else if (isset($_POST['fakeVote'])) {
    $fake = 1;
} else {

}

if ($confirmed + $fake == 1){
 $sqlInsert = 'INSERT INTO database (postid, ipid, confirmed, fake) values 
   ('.$id.', '.$ipid.', '.$confirmed.', '.$fake.')';
   $dbInsert = mysqli_Query($connection, $sqlInsert);
}

这是index.php中的表单

//FORM
    if ($countIpVoted == 0) {
        echo '<br>'.'<form name="myform" action="setvote.php" method="POST" >';
        echo '<input type="hidden" name="postId" value="'.$postid.'" />';
        echo '<button class="votetrue" type="submit" name="confirmedVote" id="trues"><i class="fa fa-check" aria-hidden="true"></i> True</button>';
        echo '<button class="votefalse" type="submit" name="fakeVote" id="falses"><i class="fa fa-times" aria-hidden="true"></i> False</button>';
        echo'</form>';
    }
    else {
        echo '<p style="padding-top:6px; padding-bottom:6px;">You have already voted this post.</p>';
        $rowIpVoted = $resultIpVoted->fetch_assoc();

如何将数据发送到mysql而不刷新页面?我试过这样的方法:

<script>
    $(function () {

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

            e.preventDefault();

            $.ajax({
                type: 'post',
                url: 'setvote.php',
                data: $('form').serialize(),
                success: function () {

                }
            });

        });

    });
</script>
xzlaal3s

xzlaal3s1#

文件中有错误 data 它应该是一对 key:value 如果您想在php cose中使用数据,那么将数据更改为 data :{serial : $('form').serialize()} 还提到 datatype

lpwwtiir

lpwwtiir2#

试试看。可能它会和你的代码一起工作$(函数(){

$('.votetrue,.votefalse').on('click', function (e) {
        var fd = new FormData();
        fd.append('postId',$('input[name="postId"]').val());
        fd.append($(this).attr('name'),$(this).attr('id'));
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: 'setvote.php',
            data: fd,
            processData: false,
            contentType: false,
            success: function () {

            }
        });

    });

});
nwsw7zdq

nwsw7zdq3#

像这样试试,

$.ajax({
                url: "setvote.php ",
                type: "POST",
                data:  new FormData(this),
                contentType: false,
                processData:false,
                success: function(data)
                { }
});

同时也使, action="" 表单中的标记

相关问题