2011-02-22 78 views
0

我有一個網頁有一些破損的圖像,這些圖像正在顯示一個數據庫。我正在使用以下jQuery來隱藏已損壞的圖像。多個一次PHP數據庫更新使用jQuery的.error()

//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') ; 
?> 

這是我在阿賈克斯首次嘗試,我知道我得到了一些東西嚴重錯誤。我看到一些使用KEY VALUE對的例子,但我不知道$ _POST ['var']應該是什麼。

你甚至可以請求這樣的「當頁面加載」?我試圖用任意按鈕來包裝它,但它不起作用。

由於這隻需要使用一次我並沒有真正專注於使用AJAX

+0

你會得到任何錯誤? – Stephen 2011-02-22 18:09:04

+0

不,儘管我是新來的用螢火蟲調試ajax。沒有什麼是真的發生。 – ThomasReggi 2011-02-22 18:14:54

回答

1

試試這個:

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

如果你想要啓動它在頁面加載時,請務必將其包含在$(document).ready()功能。