我花了几个小时在这个没有运气。我试图删除已用复选框标记的列表元素,并在之后按下删除按钮。每个复选框都有一个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