繁体   English   中英

将AJAX连接到MySQL(PHP)

[英]Connecting AJAX to MySQL (PHP)

我有一个与PHP,MySQL,AJAX和JQuery有关的作业。 目前,我遇到脚本问题,希望有人能帮助我。 该脚本用于更新MySQL中的字段。 该脚本似乎无法正常工作。 这是脚本:

function updatedata(id) {
    var id = id;
    var name = $('#name' + id).val() ;
    var url = $('#url' + id).val() ;
    var imageurl = $('#imageurl' + id).val() ;
    var description = $('#description' + id).val() ;
    var datas = "name=" + name + "&url=" + url + "&imageurl=" + imageurl + "&description=" + description;

    $.ajax({
        type: "POST",
        url: "update.php?id=" + id;
        data: datas;
    }).done(function (data) {
        $('#info').html(data);
        viewdata();
    });
}

以下是“ update.php”文件中包含的代码:

<?php
    include ('header.php');
    if(isset($_GET['id'])) {
        $stmt = $connection->prepare("UPDATE news_source SET name=?, url=?, description=?, imageurl=? where id=?");
        $stmt->bind_param('sssss', $full_name, $url_1, $descript_ion, $image_url, $id);
        $full_name = mysqli_real_escape_string($connection, $_POST ['name']);
        $url_1 = mysqli_real_escape_string($connection, $_POST ['url']);
        $descript_ion = mysqli_real_escape_string($connection, $_POST ['description']);
        $image_url = mysqli_real_escape_string($connection, $_POST ['imageurl']);
        $id = $_GET ['id']);

        if($stmt->execute()))
        { ?>
            <div class = "alert alert-success alert-dismissible" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    <span aria-hidden="true"> &times; </span>
                </button>
                <strong>Success!</strong> 
                Record has been added.
            </div>
        <?php } else { ?>
            <div class = "alert alert-danger alert-dismissible" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    <span aria-hidden="true"> &times; </span>
                </button>
                <strong>Error!</strong> 
                Record failed to add.
            </div>
        <?php }
    include ('footer.php');
?>

编辑:该脚本在相同的php文件“ maintain.php”中被调用为:

<div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" onclick="updatedata('<?php echo $rows['id']; ?>')" class="btn btn-primary">Save changes</button>
      </div>

编辑:

问题描述:好的,问题是我无法更新MySQL数据库中的字段。 主文件应允许用户编辑Bootstrap Modal中存在的数据,然后运行AJAX以动态更新数据库而无需刷新页面。 目前,主文件仅显示可编辑的数据,但是我无法更新数据库中的数据。 单击“保存更改”按钮后,什么也不会发生。

注意:我试图使用如何显示PHP错误中显示的信息? 显示php错误,但不幸的是它什么也不显示。

您要绑定参数,然后将其转义。 首先获取参数并逃脱,然后将其绑定,而您没有对ID进行消毒。

$full_name = mysqli_real_escape_string($connection, $_POST ['name']);
$url_1 = mysqli_real_escape_string($connection, $_POST ['url']);
$descript_ion = mysqli_real_escape_string($connection, $_POST ['description']);
$image_url = mysqli_real_escape_string($connection, $_POST ['imageurl']);
$id = intval($_GET ['id']));

$stmt->bind_param(1, $full_name);
$stmt->bind_param(2, $url_1);
$stmt->bind_param(3, $descript_ion);
$stmt->bind_param(4, $image_url);
$stmt->bind_param(5, $id);

回显您的HTML Div(警报模态)。 像这样:

echo '<div class = "alert alert-success alert-dismissible" role="alert">';
            echo '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
                echo '<span aria-hidden="true"> &times; </span>';
            echo '</button>';
            echo '<strong>Success!</strong>'; 
            echo 'Record has been added.';
        echo '</div>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM