Javascript jQuery-$.post不';t post到php
我尝试使用jQuery,使用以下代码将变量发布到同一页面Javascript jQuery-$.post不';t post到php,javascript,php,jquery,post,Javascript,Php,Jquery,Post,我尝试使用jQuery,使用以下代码将变量发布到同一页面 file.js $('#sidebar-nav').on('click', 'li', function() { var theID = $(this).attr('id'); $.post(location.href, {theID: theID}); }); file.php <?php if (isset($_POST['theID'])) { // do something } ?&
file.js
$('#sidebar-nav').on('click', 'li', function() {
var theID = $(this).attr('id');
$.post(location.href, {theID: theID});
});
file.php
<?php
if (isset($_POST['theID'])) {
// do something
}
?>
<html>
<!-- the rest of the page -->
</html>
已更新
由于某种原因,但是theID
没有发布到php文件中。if
语句中的我的代码不会执行。此外,我在相同的js和相同的php文件中对其他removeID
使用了完全相同的方法,它对removeID
效果很好,但对theID
并澄清在这种情况下location.href
是什么;它是file.php
有人能帮我吗?这行有语法错误:
var theID = $(this).attr('id'));
// -----------------^
您需要删除额外的关闭按钮(代码>)。或者最好不要在可以直接访问属性时调用两个函数:
var theID = this.id;
或者更好,因为theID
只在一个地方使用,所以完全去掉该变量:
$.post(location.href, {theID: this.id});
要将ajax请求发送到同一页面,可以将url参数保持为空/删除 试一试
美元邮政({
泰德:泰德,
成功:功能(数据){
警报(“数据加载:”);
}
});
应该发生什么?像这样使用$.post()
应该会向您的PHP发出请求,但是浏览器中的页面不会有可见的更改。“这不起作用”是指您的PHP没有收到请求,还是…?location.href是什么?我们猜不出你的变量。它们是可变的。很抱歉声明不清楚,我更新了问题。我的php文件没有收到请求。另外,{“theID”:theID}
Jimbo的意思是您使用它时location.href
的当前值是什么…很抱歉,当我将代码复制到这里时,额外的关闭)
是一个错误。我确实需要单独一行上的var来解析ID。“我确实需要单独一行上的var来解析ID。”-好的,我的建议是基于显示的代码,在这里您不需要对变量做任何其他操作。但是this.id
仍然比$(this.attr('id')
好。感谢您让我知道更好的检索id的方法。您知道我的php文件没有收到请求的原因吗?这行不通$.post()
要求第一个参数是URL,除非您说有一个功能没有提到。但是,即使它需要一个对象,它也不知道与success
在同一个对象中名为theID
的属性。
<script type="text/javascript">
$.post({
theID: theID,
success: function (data) {
alert("Data Loaded:");
}
});
</script>