如何检索给定链接的rel属性的值并将其传递给处理程序?
我有一个链接列表
链接列表
<div id='one_answer'>Answer1
<a href="$" class="delete_answer" rel='Answer1'>delete</a>
</div>
<div id='one_answer'>Answer2
<a href="$" class="delete_answer" rel='Answer2'>delete</a>
</div>
<div id='one_answer'>Answer3
<a href="$" class="delete_answer" rel='Answer3'>delete</a>
</div>
这些链接由以下代码生成。 rel的以下值似乎没有传递给处理程序。
PHP生成的链接
echo ($answer . "<a href='#'"
. "class='delete_answer'"
. " rel='" . $body . "'" // I identify the answer
// by the body of the answer
// in the database
. ">delete</a>"
);
用户点击第二个链接。 rel属性应该将答案传递给处理程序。 jQuery应该基于POST -data执行以下操作。
的jQuery
jQuery('a.delete_answer').live('click', function(){
jQuery.post('/codes/handlers/delete_an_answer.php',
{ delete_answer: jQuery(this).attr('rel') },
function(){
$("#one_answer").removeClass("yellow");
})
});
文件delete_an_answer.php
$dbconn = pg_connect("host=localhost port=5432 dbname=masi user=masi password=123");
// remove the answer
$result = pg_query_params ( $dbconn,
'DELETE FROM answers
WHERE answer = $1',
array ($_POST['answer'] ) // Problem here, because
// $_POST['answer'] is empty when it gets here
// so no answer is deleted
);
我从Postgres获取答案,同时将rel属性的值设为$ body。
答案 0 :(得分:1)
好的,好吧......要回答你的第一个问题,你可以使用jQuery的index()
方法获得与给定选择器匹配的元素数组中单击的元素的索引:
$('a.delete_answer').live('click', function()
{
var index = $("a.delete_answer").index(this);
// index will be 0 for the first matching link,
// 1 for the second, and so on. Do what you will with this...
...
});
至于你提出的其他问题,我真的不知道你在问什么。
答案 1 :(得分:1)
我可以看到此代码有几个问题:
<div id='one_answer'>
。 ID应该是唯一的,因此$("#one_answer").removeClass("yellow");
将始终选择第一个div ,而不是所有div。$_POST['answer']
,但ajax有{question_id: jQuery(this).attr('rel')}
。rel
和href='$'
,这很奇怪。 <div id='one_answer>
也被打破了,应该是另一个单引号。我认为这些是复制粘贴问题。