Ajax通过名称发布数据

时间:2017-09-04 12:55:36

标签: php ajax

如果我为图片添加标题工作,如果我添加一个标题而不刷新页面,则第一个值会发布到第二个...

$(document).ready(function () {
    $(".cap_btn").click(function(){
        var li = $(this).closest("li");
        var cap = $('input[name="cap"]').val();
        $.ajax({
            type: "POST",
            url: "addcap.php",
            data: { id: li.data("imageId"), "cap": cap},
            success: function(data){
                alert("Caption Added");
            },
            error: function(){
                alert("failure");
            }
        });
    });
    });

php代码:

if(isset($_POST['id'])){
    $ids = $_POST['id'];
    $cap = $_POST['cap'];
    try
    {

        $query = "UPDATE image SET caption='$cap' WHERE id='$ids'";
        $sql=$con->prepare($query);
        $sql->execute();
    }
    catch(PDOException $e)
    {
        echo $sql . "<br>" . $e->getMessage();
    }
}

1 个答案:

答案 0 :(得分:1)

你可以这样做

$(document).ready(function () {
$(".cap_btn").click(
    function()
    {
        var xmlhttp = new XMLHttpRequest();

        xmlhttp.onreadystatechange = function()
        {
            if (this.readyState == 4 && this.status == 200)
            {
                alert("Caption Added");
            }
            else
            {
                alert("failure");
            }
        };

        xmlhttp.open("POST", "addcap.php", true);

        var formdata = new FormData();

        var li = $(this).closest("li");
        var cap = $('input[name="cap"]').val();

        formdata.append("id",li.data("imageId"));
        formdata.append("cap",li.data("cap"));

        xmlhttp.send(formdata);
    });
});

希望有所帮助:)