所有内容均无data-esid
,我无法在data-esid
中发送数据。
我的错误在哪里?
<a href="#" data-esid="123" data-lname="Saracoglu" onclick="goToWorld();">link1</a>
Javascript:
function goToWorld() {
var idno = $(this).data("esid");
var last_name = $(this).data("lname");
var dataString = 'ESidNO='+idno+'&last_name='+last_name;
$.ajax({
type:'POST',
data:dataString,
url:'Lib/Path/Page.php',
success:function(data) {
alert(data);
}
});
return false;
}
答案 0 :(得分:1)
我不知道这有什么用,无论是否有esid
。问题是,无论this
在您的函数的上下文中,它都不是您单击的链接。
您也没有取消点击事件,返回false
但您没有在内联点击处理程序中使用该值。但是,这只会导致页面跳转到顶部,因为链接为#
。
解决这个问题的最简单方法是将处理程序附加到链接,例如使用类。
结果如下:
<a href="#" data-esid="123" data-lname="Saracoglu" class="goToWorld">link1</a>
的javascript:
$('.goToWorld').on('click', function(e) {
// Now $(this) is the link that was clicked
var idno = $(this).data("esid"),
last_name = $(this).data("lname");
// Cancel the default click event
e.preventDefault();
$.ajax({
type: 'POST',
data: {
ESidNO: idno,
last_name: last_name
},
url: 'Lib/Path/Page.php',
success: function(data) {
alert(data);
}
});
});
请注意,我还使用对象替换了数据,以便正确转义值。这不会对示例代码产生影响,但是当您的值包含必须在网址中转义的字符时,它会有所不同。
答案 1 :(得分:0)
您必须在{}
代替你的dataString
,试试这个:
newData = {ESidNO: idno, last_name: last_name}