我对这个代码片段有问题,它不能工作:
.
.
.
<a href="#" id="$_GET['id1']" onclick="addToDb(<?php echo $_GET['id2'];?>)">Its a link</a>
.
.
.
"addToDb()
“函数:
<script>
function addToDb(e)
{alert(e);
$.post("add_to_db.php",
{
id2:e,
id1:this.attr("id")
},
function(data,status){
alert("Data: "+data+"\nStatus: "+status);
});
}
</script>
这个函数有效,因为"alert(e)
“给出了"id2
”的值。可能是id1:this.attr("id")
出了什么问题,我试了试"alert(this.attr("id"))
",但没起作用。
"add_to_db.php
“页面是:
<?php
$connection=mysql_connect("localhost","root","") OR die('Could not connect: '.mysql_error());
mysql_select_db("db_user",$connection);
?>
<?php
$id2=htmlspecialchars(trim($_POST['id2']));
$id1=htmlspecialchars(trim($_POST['id1']));
?>
<?php
$duplicacy_check="select * from tbl_name where id2='$id2' && id1='$id1' LIMIT 1";
$duplicacy_check_result=mysql_query($duplicacy_check) or die(mysql_error());
if($duplicacy_check_result)
{
?>
<script>
alert("Its already added !");
</script>
<?php
exit();
}
else
{
$query="INSERT INTO tbl_name(id2,id1) VALUES('$id2','$id1')";
mysql_query($query) or die(mysql_error());
?>
<script>
alert("Added to the db");
</script>
<?php
}
?>
不要把"id1","id2","tbl_name“等等,或者"id1”和“id2”的顺序搞混了,我知道。
请帮帮我,我在过去的两天里遇到了这个简单的问题。
发布于 2013-06-13 12:25:33
请尝试以下操作:
<a href="#" id="$_GET['id1']" onclick="addToDb(<?php echo $_GET['id1'];?>, <?php echo $_GET['id2'];?>)">Its a link</a>
和
<script>
function addToDb(a, e)
{
$.post("add_to_db.php",
{
id2:e,
id1:a
},
function(data,status){
alert("Data: "+data+"\nStatus: "+status);
});
}
</script>
发布于 2013-06-13 12:37:27
我相信错误是如您所说的: this.attr("id")示例:http://jsfiddle.net/fAHye/
将您的函数更改为:
<script>
function addToDb(elm, e)
{alert(e);
$.post("add_to_db.php",
{
id2:e,
id1:elm.getAttribute("id")
},
function(data,status){
alert("Data: "+data+"\nStatus: "+status);
});
}
</script>
和HTML连接到
<a href="#" id="<?php echo $_GET['id1']; ?>" onclick="addToDb(this,<?php echo $_GET['id2'];?>)">Its a link</a>
注:<?php echo $_GET['id1']; ?>
此外,触发器位于链接中这一事实可能会给您带来一些麻烦,因为页面将发生更改,请尝试使用其他标记或删除默认链接http://api.jquery.com/event.preventDefault
https://stackoverflow.com/questions/17079003
复制相似问题