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

<td><inputid="spid"name="text"type="text"value="<?phpecho$row['spid'];?>"/></td><td><... <td><input id="spid" name="text" type="text" value="<?php echo $row['spid'];?>" /></td>
<td><input id="spid" name="text" type="text" value="<?php echo $row['spbh'];?>" /></td>
<td><input id="spid" name="text" type="text" value="<?php echo $row['spmc'];?>" /></td>
<td><input id="spid" name="text" type="text" value="<?php echo $row['spdw'];?>" /></td>
<td><input id="spid" name="text" type="text" value="<?php echo $row['spsl'];?>" /></td>
<td><input id="spid" name="text" type="text" value="<?php echo $row['spdj'];?>" /></td>
<td><input id="spid" name="text" type="text" value="<?php echo $row['spzj'];?>" /></td>
<td><input id="spid" name="text" type="text" value="<?php echo $row['sprq'];?>" /></td>
<td><a onclick="javascript:a(<?php echo $row['spid'];?>); return false;" href="#">删除</a></td>

<script language='javascript' type='text/javascript'>;

function a(n){
var a1=document.getElementById('spid').value;"
alert('a1= '+a1);
if(a1=n){

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

alert('删除成功');}}
</script>

就是我点击删除的时候 得到数据ID值 经过js判断id值是否正确 如果正确就执行php中的删除语句 但我这个不成功 是错了还是方法不对 希望各位高手指点下 谢谢了
展开
 我来答
leiniao_19
2011-09-15 · TA获得超过176个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:172万
展开全部
看了你的代码,错误有好几个,第一:你还弄不明白js跟php的区别;js是在客户端执行的脚本,而php是在服务器端执行的脚本,你想要执行删除,要么用ajax方法,要么跳转到另外一个页面执行删除操作之后再返回,给你第二种方法:重新写function a()函数:
function a(n){
window.location.href="delete.php?id="+n;
}
同一目录下新建一个delete.php;代码如下:直接拷贝粘贴:
<?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'<script language='javascript' type='text/javascript'>';
echo'alert('删除成功');hisory.back();';
echo'</script>';
?>
错误二:id必须是唯一的:你的页面<input id="spid"却有那么多个:
错误三:php传递数组的话应该用 <input id="spid" name="text[]" 而你却都是 name="text" 这样的话只能传递一个值
追问
谢谢了 很感谢      搞定了  我是Java web 转型过来的 才接触不是很懂 谢谢所有的回答者 感谢你们........................
cmoooo
2011-09-15 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:670万
展开全部
你的程序存在严重的逻辑错误!

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

要知道,下面的这做程序

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

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

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

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

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

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

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

我只给你一个思路,你自己去研究ajax的运行原理吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式