我设置了一些行,当点击打开时,它会进行数据库更新,将状态设置为打开票证。
但由于某种原因,我不能拿它的主$ id?我需要它用它做一些其他的事情,而不想在下一页上做第二次查询或加入只是为了得到主id。
我在查询中有这个(我排除了所有的连接代码等等):
<?php start query { ?>
<a href="javascript:void(0)" id="<?php echo $cid;?>" onclick="open(id)">Open</a>
<input type="hidden" id="REF<?php echo $cid;?>" value="<?php echo $id;?>">
<?php } // end query ?>
我在我的ajax中有这个:
function open(id) {
var txt = $.ajax({
url: 'actions/open.php',
async: true,
type:'POST',
data:({
cid: id,
lid: $('#REF'+id).val()
})
}).success;
alert( cid,id );
setTimeout(function(){window.location.href='view.php?mode=Preview&cid='+id+'&id='+lid;},200);
}
我的问题是它一直告诉我在firebug中id是null
如果我改变它只是抓住cid并做一个测试它工作正常吗?
我试过 document.getElementById 但是出于某种奇怪的原因,什么都没有用?
我的代码有什么问题?我错过了什么吗?
提前致谢:) 强尼
答案 0 :(得分:0)
你的意思是让这一行调用open
,并传递插值变量值吗?
<a href="javascript:void(0)" id="<?php echo $cid;?>" onclick="open(id)">Open</a>
会变成
<a href="javascript:void(0)" id="<?php echo $cid;?>" onclick="open(<?php echo $id;?>)">Open</a>
此外,在您的AJAX调用中,您似乎正在使用lid
键将对象分配给值$('#REF'+id).val()
。但是,您隐藏的输入标记的ID为REF<?php echo $cid;?>
。将$CID
的值传递给open()
,或者使输入字段的ID为REF<?php echo $id;?>
其他说明:看起来你正在使用jQuery来构建你的AJAX调用。您指定的是async: true
,这是默认选项值。您可以从代码中省略此内容以提高可读性。查看默认值:http://api.jquery.com/jQuery.ajax/