ajax与jquery无法正常工作

时间:2013-09-07 10:12:02

标签: php jquery ajax

我希望当我点击按钮时,文本输入数据发布或转到same page输入。我有这个代码:

$(document).ready(function () {
         $("#btn_ok").click(function(){
              $.ajax({
                          type: "GET",
                          url: "test.php",
                          data: { name :$("#name").val() ,                }
                        }).done(function( msg ) {
                            alert("Ok");

                });


         });


     });
<?php
    if(isset($_GET["name"]))
    {
        echo "OK";

    }
    else
        echo "NO";

?>
<input type="text" id="name" />
<input type="button" id="btn_ok" />

Ok alert is shown但在页面上回显NO而不是OK

2 个答案:

答案 0 :(得分:2)

1.您不应该致电same page因为ajax调用不会执行(刷新)同一页面    你必须调用另一个你有php代码的页面

page1.php中

$(document).ready(function () {
     $("#btn_ok").click(function(){
          $.ajax({
              type: "GET",
              url: "page2.php",
              data: { name :$("#name").val() ,                }
          }).done(function( msg ) {
                //alert("Ok")
                alert(msg); //You have need a change here to see 
                            //response from page2.php
          });


     });
 });

     <input type="text" id="name" />
     <input type="button" id="btn_ok" />

使page2.php

<?php
    if(isset($_GET["name"]))
    {
        echo "OK";
    }
    else
        echo "NO";
?>

2.你没有在ajax完成功能中显示你的消息

使用:

 alert(msg);

而不是

  alert("Ok");

答案 1 :(得分:1)

您正在对同一页面进行AJAX调用,这意味着您将获得同一页面的内容作为回复,并且它将位于您的msg字符串中或当您使用success函数时,那么您也是得到它。

在该回复中,您将显示OK

实际上,AJAX会让您回复该页面要将内容发送到浏览器的内容。因此,如果您计划在页面中显示OK,则必须使用查询字符串参数加载此页面。

要在页面上显示确定,您应在浏览器的地址栏中输入以下内容。 http://YOUR_PAGE_URL?name=anything

click here查看有关AJAX的更多详情。