2013-11-24 81 views
-4

我试图使用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

任何人都可以帮助我吗?

+1

什么不行? – David

+0

应该发生什么?使用'$ .post()'就可以向PHP发出请求,但浏览器中的页面不会有明显的变化。通过“这不起作用”你的意思是你的PHP没有收到请求,或...? – nnnnnn

+0

location.href是什么?我们不能猜测你的变量。他们是可变的。 – Jimbo

回答

1

您对此行语法错误:

var theID = $(this).attr('id')); 
//   -----------------^ 

您需要删除多余的收盘)。甚至最好不要调用两个函数时,属性可以直接访问:

var theID = this.id; 

或者更好的,因为theID只在一个地方使用摆脱完全可变的:

$.post(location.href, {theID: this.id}); 
+0

对不起,当我将代码复制到这里时,额外关闭'''是一个错误。而且我确实需要单独一行来分析ID。 – Lancelot

+0

_“我确实需要单独一行来分析ID。“_ - 好的,我的建议是基于所显示的代码,你不需要对变量做任何其他的操作,但'this.id'仍然比'$(this).attr('id')'更好。 – nnnnnn

+0

谢谢你让我知道更好的方法来检索ID。你知道我的PHP文件没有得到请求的原因吗? – Lancelot

0

要发送Ajax请求,你可以保持URL参数空在同一页/删除

TRY

<script type="text/javascript"> 


      $.post({ 
        theID: theID, 
        success: function (data) { 
        alert("Data Loaded:"); 
        } 
       }); 

</script> 
+0

这是行不通的。$ .post()'期望第一个参数是一个URL,除非你说没有在[$ .post()'文档页面]上提到的功能(http://api.jquery.com/jquery.post/),但即使它期望对象,它不会知道与'success'相同的对象中名为'theID'的属性。 – nnnnnn