2013-10-26 33 views
0

我想将数据发送到PHP文件,当我点击一个链接

<a href="test.html" onclick ="post()">click me</a> 

我有一个外部JS文件

function post(){ 
    $.post("myPhp.php", { name: "John" }); 
} 

但是当我检查我的PHP文件,没有发布。

$_POST['name']未定义。

我在做什么错?谢谢你的帮助。

+0

你检查,如果你的职位功能被调用? –

+0

当你点击那个链接时,它会在你的ajax完成之前被重定向到相应的页面。所以试着停止那个重定向 –

+0

@ User016我怎么能? – Kay

回答

2

尝试这样的事情,原因,你的AJAX请求submited之前,你的代码是不是因为工作,你的页面重定向

<a href="test.html" onclick ="return post()">click me</a> 

JavaScript代码

function post(){ 
    $.post("myPhp.php", { name: "John" }); 
    return false; 
} 

编辑的代码

要重定向页面使用异步

function post(){ 
     $.ajax({url:"myPhp.php", 
       data: {name: "John"}, 
       type:'post', 
       async: false, 
       success: function(data){ 
       return true;  
       }, 
     }); 
    } 
+0

谢谢!这实际上工作,但我希望它后重定向。有什么建议? – Kay

+0

查看编辑代码 –

+0

@rajeshkakawat重定向到test.html .. – Manwal

-1

尝试follwing

function post(){ 
    $.ajax({url:"myPhp.php", 
      data: {name: "John"}, 
      type:'post', 
      success: funcation(data){}, 
      }); 
} 

或发现这里的$。员额的简要概述,然后用它适当http://api.jquery.com/jQuery.post/

+0

他的代码怎么了? –

+0

@Ankush - 你做了什么应该做$ .ajax()如果我没有错?这是$ .post()的语法! – N20084753

+0

我已更正的代码 –

0

认为错误是与名称...应该是一些字符串。

var name = 'name'; 

or 

data: {'name' : 'john'} 

希望这会有所帮助。还可以尝试添加回调以检查您的发布数据是否已成功发送。

0

我和你遇到过同样的问题。 如果你正在使用jquery.redirect.min.js作为你的jquery插件,你可以使用如下。它提供了POST方法。

$().redirect("myPhp.php", { name: "John" }); 

适合我。

+0

我使用整个jQuery库实际上 – Kay

+0

忘记插件。你试过这个吗? – Satheesh

1

我认为其重定向到相应的页面之前,你的AJAX是completed.So尝试停止重定向与以下类似的代码:

<a href="javscript:void(0)" onclick ="post()">click me</a> 

function post(){ 
    $.post("myPhp.php", { name: "John" },function(){ 
    window.location.href('test.html'); 
    }); 
} 
+0

没有工作。现在什么都没有 – Kay