0

我对 ajax 和将 POST 数据从 jquery 传递到 PHP,然后将返回值从 php 写回 div 标签有一点问题

这是代码:

JS

function jsAjax()
{

    $.ajax(
    {

        type:"POST",
        url:"http://localhost/anonsecrets/functions/jswrapper.php",
        data:{name:"Ilija", phone:"0343014"},
        success:function(data)
        {
            $("#msg").html(data);
        },
        error:function()
        {
            alert("Neuspenos");
        }
    });
};

PHP

<?php

echo $_POST['name'];

?>

和 HTML

 <div id="msg"></div>
 <a href="" target="" onclick="jsAjax()"><div id="headerbutton">Best</div></a>
4

5 回答 5

2

您还可以对 HTML 执行以下操作

<a href="" target="" onclick="jsAjax(); return false;"><div id="headerbutton">Best</div></a>

这可确保浏览器忽略单击,除此之外,您还应确保页面的 URL 也在 localhost 域中,以避免由于 CORS ( http://en.wikipedia.org/wiki/Cross引起的问题-origin_resource_sharing)问题

于 2013-07-13T17:08:29.067 回答
1

您可以通过添加到链接来使用jQuery点击处理程序id

例子:

HTML

<div id="msg"></div>
<a href="" id="msg-link" target=""><div id="headerbutton">Best</div></a>

JS

$('#msg-link').click(function(e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "test.php",
        data: {name: "Ilija", phone: "0343014"},
        success: function(data)
        {
            $("#msg").html(data);
        },
        error: function()
        {
            alert("Neuspenos");
        }
    });
});
于 2013-07-13T17:07:54.177 回答
0

您是否在某种 onLoad 语句中拥有整个功能?JQuery 需要对 DOM 可用,然后才能使用。

http://api.jquery.com/ready/

Ankit 使用 a 标签也是正确的。

于 2013-07-13T16:59:28.433 回答
0

将您的 HTML 修改为

<a href="#"

<a href="" 

这样您的页面将不会在单击a发出 AJAX 请求的标签后重新加载

于 2013-07-13T16:56:21.640 回答
0

乔纳森,

您没有描述单击链接时会发生什么。如果页面在没有进行 ajax 调用的情况下重新加载,Ankit 的解决方案将起作用。如果您很难找到确切的原因,请在安装 Firebug 扩展后尝试在 Firefox 上进行测试。在 Firebug 控制台中,您将看到 Javascript 错误(如果有)。

于 2013-07-13T17:11:07.630 回答