使用AJAX更新DB ROW

时间:2017-06-20 14:01:44

标签: php ajax

我正在使用AJAX对更新行进行故障排除。当我点击提交按钮时,戳的值增加+1,我也需要它在DB中更新。一切都需要与AJAX一起使用。 目前我的代码仅使用+1来使用ajax戳输入但DB行仍然没有更新。 HTML:

 <?php
                    $result = $mysqli->query("SELECT * FROM users") or die($mysqli->error);
                    while ($users = $result->fetch_assoc()) {
                        ?>
                        <form class="table" name="table" id="table" method="post" enctype="multipart/form-data" autocomplete="off" data-counter="<?php echo $users['id']?>">
                            <div class="Table-row" id="table">
                                <div class="Table-row-item" data-header="Header1"><input class="clear" type="text" name="first_name" id="first_name" value="<?php echo $users['first_name'] ?>"></div>
                                <div class="Table-row-item" data-header="Header2"><input class="clear" type="text" name="last_name" id="last_name" value="<?php echo $users['last_name'] ?>"></div>
                                <div class="Table-row-item" data-header="Header3"><input class="clear" type="text" name="email" id="email_<?php echo $users['email']?>" value="<?php echo $users['email'] ?>"></div>
                                <div class="Table-row-item" data-header="Header4"><input class="clear" type="text" name="poke" id="poke_<?php echo $users['id']?>" value="<?php echo $users['poke']?>"></div>
                                <div class="Table-row-item" data-header="Header5"><input class="poke" type="submit" value="Poke" id="submit" name="submit"></div>
                                <input class="clear" type="hidden" id="hidden" name="hidden" value="<?php echo $users['email']?>">
                            </div>
                        </form>
                                        <?php 
                                      } ?>

PHP:

<?php
require 'db.php';
if (isset($_POST['submit'])) {
$poke = $mysqli->escape_string($_POST['poke']);
    $email = $mysqli->escape_string($_POST['email']);
    $mysqli->query("UPDATE users SET poke='$poke' WHERE email='$email'") or die($mysqli->error);
}

AJAX:

$(document).ready(function () {
    $('form').on('submit', function (e) {
        var id = $(this).attr('data-counter');
        e.preventDefault();
        $.ajax({
            type: "post",
            data: $(this).serialize(),
            url: "update.php",
            success: function () {
                var counter = parseInt($("#poke_"+id).val()); // Use form's inner #poke
                counter++;
                $("#poke_"+id).val(counter);
                alert("form was submited on: " + id);
            }
        });
        return false;
    });
});

1 个答案:

答案 0 :(得分:0)

信息不足。您需要做更多的诊断。

E.g:将SQL语句转储到输出中,以便检查它是否符合预期。

然后运行SQL,例如phpAdmin检查它是否更新。

您可能在电子邮件字符串中遇到问题,这可能是由AJAX和数据库之间的不同字符编码引起的。可能两者都应该使用UTF8。

相关问题