我花了幾個小時在這個沒有運氣。我試圖刪除已用複選框標記的列表元素,並在之後按下刪除按鈕。每個複選框都有一個html id屬性,用於關聯實際的ID列值。我使用MySQL的語句刪除基於適當的IDS行(我可以刪除從HTML元素,但不是MySQL表)
"DELETE FROM todolist WHERE ID IN (".$_GET['id'].")"
例如ID ... ID =「456444454」
javascript會通過並找到選中框的id值並將它們發送到php文件。這部分沒有問題。從警報中,我可以驗證它是否提供了正確的ID。這是按下刪除按鈕時調用的方法。
function removeCheckedTask(){
var checkBoxes = $('toDoList').getElementsByClassName('box');
var deletedID = new Array(); var indexID =0;
for (var i = 0; i < checkBoxes.length; i++) {
if (checkBoxes[i].checked){
deletedID[indexID]=checkBoxes[i].getAttribute('id');indexID++;
var par = checkBoxes[i].parentNode;
$('toDoList').removeChild(par);
i--;
for(var a=i+1; a<checkBoxes.length; a++){//moves other elements
par = checkBoxes[a].parentNode;
par.style.top = (a*40)+"px";
}
}
}
if(deletedID.length>0){
$('message').innerHTML = "Just a second..."
// Set te random number to add to URL request
nocache = Math.random();
// Pass the login variables like URL variable
var ids = 'id='+deletedID[0];
for(var i=1; i<deletedID.length; i++){
ids+= ',' + deletedID[i];
}
alert('removeTasks.php?'+ids);
http.open('get', 'removeTasks.php?'+ids);
http.onreadystatechange = deleteReply;
http.send(null);
}
function deleteReply() {
if(http.readyState == 4){
var response = http.responseText;
$('message').innerHTML = 'Task removed:'+response;
}
}
resetIDs();//resets ids of list elements, don't worry about it
}
這裏是沒有連接東西,我的PHP代碼。它使它成爲聲明。
if(isset($_GET['id'])){
$q+="DELETE FROM todolist WHERE ID IN (".$_GET['id'].")"; //line 13
mysql_query($q) or die(mysql_error());
echo "tried to delete stuff";
} else {
echo("Bad delete");
}
響應回波已經變了一下,因爲我已經修改了$ Q字符串,但最近這個簡單的版本,它已經打印了MySQL錯誤 -
注意:未定義的變量:q在第13行的C:\ xampp \ htdocs \ todo \ removeTasks.php中 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,在第1行的'0'附近使用正確的語法。如何進入if語句,然後說它是未定義的?
如果我使用
"DELETE FROM todolist WHERE ID IN ("+$_GET['id']+")"
我得到的錯誤 - 注意:未定義的變量:●在C:\ XAMPP \ htdocs中\待辦事項\ removeTasks.php上線13 你在你的SQL語法錯誤;請檢查與您的MySQL服務器版本對應的手冊,以在第1行'457'附近使用正確的語法。
457是第一個ID。
新到這裏和MySQL,所以讓我知道,如果我留下任何東西。
「刪除...使用$ _GET」 ** NOOOOOOOOOOO !!!!!!!!!! ** – 2012-07-27 01:12:19
雅,我知道...這不是對任何公衆使用也不用擔心;只是想完成這件事。 – user1556328 2012-07-27 01:34:06
也使用未轉義的$ _GET進行刪除。 – ceejayoz 2012-07-27 01:34:08