js中写的php代码 删除数据库中指定的数据为什么不执行(js都执行了就是删除语句执行不里)

2024-12-28 07:47:18
推荐回答(2个)
回答1:

看了你的代码,错误有好几个,第一:你还弄不明白js跟php的区别;js是在客户端执行的脚本,而php是在服务器端执行的脚本,你想要执行删除,要么用ajax方法,要么跳转到另外一个页面执行删除操作之后再返回,给你第二种方法:重新写function a()函数:
function a(n){
window.location.href="delete.php?id="+n;
}
同一目录下新建一个delete.php;代码如下:直接拷贝粘贴:
header('content-type:text/html;charset=utf8');
$id = $_GET['id'];
//连接数据库(你自己写)

//执行删除操作
$del='delete from spbd_a where spid='.$id;
mysql_query($del)or die('有毛病');
echo'';
?>
错误二:id必须是唯一的:你的页面错误三:php传递数组的话应该用

回答2:

你的程序存在严重的逻辑错误!

你目前只是懂得了部分PHP函数和语法的使用,同样也懂得了部分js的语法使用,但是,你却没有明白PHP与javascript的真正运行原理。

要知道,下面的这做程序

alert('a1= '+a1);
if(a1=n){

alert('n的值是:'+n+' a1= '+a1);
$aa=.echo."";
$id=='a1';
$del='delete from spbd_a where spid=$aa';
mysql_query($del)or die('有毛病');
?>

alert('删除成功');}}

其中, 之间的语句是不可控就被执行的!因为在你打开页面的那一刻,这段代码就已经执行完毕,而且里面还存在语法错误!

先说语法错误吧:$aa=.echo."";有这么用的吗?等号后面直接跟着一个点?程序会报错的。

再说,php因为先于js一步运行,在这里它是得不到js发来的值的。

你想实现这个功能,唯一的办法就是使用ajax,再开一个新的PHP页面,然后由javascript异步传输给这个页面删除的条件和命令。

我只给你一个思路,你自己去研究ajax的运行原理吧。