2011-04-15 66 views
0

只是一个简单的问题(我认为)。如何从AJAX调用中返回变量?

看一看在这个小提琴代码:http://jsfiddle.net/d9wdM/1/

我做的是建立一个网站作为一个个人项目,它可以让用户输入姓名和E-mail地址的任何款项,一旦提交表单,从名称中选择一个随机名称,并将电子邮件发送给该人员,并将其名称输出到该页面上。

我可以得到AJAX调用工作,但我不知道怎么名称变量传递回从process.php到index.php因为所有可以返回一个1

我希望这是感觉,如果它不请让我知道,我会尽量让它更清晰。再次

感谢,

马丁

+0

从我可以告诉,你在做什么是正确的..我不明白的是为什么你只能得到从1你的process.php ..每个“回声”都应该返回给你的ajax的onSuccess处理程序。 – 2011-04-15 09:54:21

+0

真的吗?我一直认为你只能从ajax请求中回应一件事情?也许我很误导那么。只是,如果我回复其他任何内容,则会返回错误,就好像返回0一样。 – martincarlin87 2011-04-15 09:57:42

+0

对不起,我的错误 - 自从我使用PHP以来太久了。是的,你只能回声1丁 - 但它可以是任何... HTML,JSON,无论你可以在你的要求的两端处理.. – 2011-04-15 09:59:06

回答

0

设法解决它,改变了Ajax调用:

<script type="text/javascript"> 
    $(function() { 
     $('.tearoundform').submit(function() 
     { 
      var query = $(this).serialize(); 
      $('#form_results').fadeOut(500).addClass('ajax-loading'); 
      $.ajax({ 
       type: "GET", 
       url: "process.php", 
       data: query, 
       success: function(data) 
       { 
         $('#form_results').removeClass('ajax-loading').html(data).fadeIn(500); 
       } 
      }); 
     return false; 
     }); 
    }); 
</script>` 
0

在你的Ajax代码,您将可以misssing的dataType这意味着你期待从服务器返回的数据的类型。

所以在你的情况下,你可以将dataType设置为html,并从服务器提供html。 This会帮助你。

0

我会建议ü一件事如果u想从AJAX页面回报的东西,然后必须使用的dataType = 'JSON'

process.php上指数

再次使用json_encode(array('returnData'=>1)) .PHPü可以使用json_decode()

Reference
dataType='json'

+0

一个好的Tutorails是[这里](http://www.phpriot。 com/articles/php-json-jquery-ajax-screencast) – diEcho 2011-04-15 10:06:14

+0

感谢所有人,但我开始感到有点困惑,对于蠢事感到抱歉!我现在在process.php中有'echo json_encode(array('returnData'=> 1)) echo“

$nominee
”; echo $ result; '在JS文件'dataType:'json'中,没有新增加到index.php页面。 我想如果我可以解决这个问题,那么我将知道更多关于AJAX的内容 – martincarlin87 2011-04-15 10:11:35

+0

@ martincarlin87 **注意:**你写'echo json_encode()'的页面(在你的情况下,它是'process.php' )严格地不向浏览器发送任何东西。意味着在process.php中没有**回显**没有'print'等。bcoz页面进入'ajax'的过程 – diEcho 2011-04-15 10:14:28