【问题标题】:jquery ajax post success return datajquery ajax post成功返回数据
【发布时间】:2011-05-15 08:56:30
【问题描述】:

我无法取回我的数据,这是我的代码。问题出在哪里?谢谢。

索引.php

<script type="text/javascript">     
jQuery(document).ready(function(){
    $(".click").click(function(){
        var value = $(this).val();// post each click value to another page
     $.ajax({
         url: "post.php", 
         dataType: "html",
         type: 'POST', //I want a type as POST
         data: "name="+value, 
         success: function(data){ 
            $("#result").data($data); 
         }
      });
    });
});
</script>

<div id="result"></div>
<a href="#" class="click">tim</a>
<a href="#" class="click">tom</a>
<a href="#" class="click">jimmy</a>

post.php

<?php
$name=trim(addslashes(htmlspecialchars(rawurldecode($_POST["name"]))));
$data .='Your name is '.$name;
$data .='how do you do';
echo $data;// how to return all the html in post.php? or return $data part? 
?>

【问题讨论】:

  • 这不是问题(@Tatu 已经为您标记了该问题),但另外:如果您没有正确编码数据,您在某些时候遇到麻烦.你需要在你的value 变量上调用encodeURIComponentdata: "name="+encodeURIComponent(value) 当你为data 参数传递一个字符串时, 负责它被编码。 (或者,让 jQuery 处理它:data: {name: value}。)

标签: jquery ajax post


【解决方案1】:

看到问题了吗?

...
success: function(data){ 
    $("#result").data($data); 
}
...

您将数据视为data,但尝试以$data 访问它,这是一个不同的未初始化变量。

此外,您不能在a 元素上使用.val(),而是使用.html() 来获取内部HTML。您可能还想在#result 上使用.html() 而不是.data()

否则你的例子似乎没问题。

【讨论】:

    【解决方案2】:

    应该是:

    success: function(data) {
    
        $("#result").html(data);
    }
    

    【讨论】:

      【解决方案3】:

      看起来您在 $data 变量上多了一个美元符号,应该是:

      success: function(data) {
          $("#result").data(data);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-20
        • 1970-01-01
        • 2013-02-09
        • 2011-11-18
        • 2014-07-07
        • 2015-09-11
        • 2011-04-04
        • 1970-01-01
        相关资源
        最近更新 更多