Javascript jQuery-$.post不';t post到php

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 } ?&

我尝试使用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
    }
?>

<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>