使用jquery的.error()多次一次性PHP数据库更新

时间:2011-02-22 18:02:20

标签: php javascript jquery mysql ajax

我有一个包含一些损坏图像的网页,这些图像正在由数据库显示。我使用以下jQuery来隐藏被破坏的图像。

//images are wrapped in an anchor
$("img").error(function() {
    $(this).parent().hide();
});

我想利用数据库中的“状态”列将所有损坏的图像设置为“隐藏”。在页面上包装图像的每个锚都具有与主数据库键“id”匹配的“id”属性。

$("img").error(function() {
    var error = $(this).parent().attr('id');
    $.ajax({
        type: "POST",
        url: "changestatus.php",
        data: "status=hidden&id=".error.""
    });
});

// changestatus.php

<?php 
mysql_connect("localhost", "stackoverflowexampleuser", "stackoverflowexamplepass") or die(mysql_error());
mysql_select_db("stackoverflowexampledatabase") or die(mysql_error());
$id = $_POST['id'];
$status = $_POST['status'];
$query="UPDATE stackoverflowexampletable SET status = '".$status."' WHERE id ='".$id."'";
mysql_query($query) or die ('error');
mysql_close();
header( 'Location: MYSOURCE' ) ;
?>

这是我第一次尝试ajax,我知道我的一些东西严重错误。我看了几个使用KEY VALUE对的例子,但我不知道$ _POST ['var']应该是什么。

你甚至可以在“加载页面时”请求这样的内容吗?我尝试用任意按钮包装它并没有用。

因为这只需要使用一次我并不专注于使用AJAX

1 个答案:

答案 0 :(得分:1)

试试这个:

$("img").error(function() {
    var error = $(this).parent().attr('id');
    $.ajax({
        type: "POST",
        url: "changestatus.php",
        data: {
             status: "hidden",
             id: error
        }
    });
});

如果您想在页面加载时启动它,请务必将其包含在$(document).ready()函数中。