2010-12-15 90 views
0

那么,我的问题是有点奇怪,真的很奇怪的PHP与AJAX与JQuery的行为

我有一个AJAX请求得到一个数字。

该号码印在:getMoney.php。 在index.php我有AJAX请求。

Ajax代码:

function getMoney(selected) 
     { 
      if(selected.value != -1) 
      { 
       // Obtener presupuesto via AJAX 
       $(document).ready(function(){ 
        $.ajax({ 
          url: "getMoney.php", 
          async: true, 
          success: function(datos){ 
           //My action 
          } 
        }); 
       }); 
      } 
     } 

当我改变一个组合框HTML

<select name="area_id" onchange="getMoney(this);"> 

嗯...我的问题的值的函数被调用: 如果我写下来getMoney号码.php(mannualy)它的作品非常完美,AJAX得到它并且动作完成了,但是当我从我的数据库中得到数字时我只得到0.我也打开mannualy getMoney.php,并且数字在那里!即使我从数据库中获得它。

怎么了?

+0

所有这些embeeded在我的MVC,我简化为未知,但MVC工作正确,我不是一个奇怪的行为AJAX – MDiaz 2010-12-15 13:55:11

+4

你可以发布代码getMoney.php? – JohnSmith 2010-12-15 13:55:41

+2

您向我们展示了错误的代码部分。我们需要getMoney.php,如果你发誓输出的数字是正确的,你的AJAX成功处理程序是什么。 – Matt 2010-12-15 13:58:17

回答

2

确保getMoney.php不使用您的标准视图标题,即脚本包括,样式表包含或其他。另外,最好让getMoney.php返回一个JSON字符串,并将数据参数化,这样您就可以撤回诊断和错误代码以及特定数据。这将有助于调试。如果你需要帮助,请看$.getJSON()

+0

Exelent!这对我有效! JSON是问题!非常感谢 – MDiaz 2010-12-15 14:04:13

0

XHR对象将缓存由URL请求的所有,你可以通过在追加一个随机字符串,这样解决这个问题:

$.ajax({ 
    url: "getMoney.php?r=" + new Date().getTime(), 
    async: true, 
    success: function(datos){ 
     //Your action 
    } 
}); 
+1

如果你设置'cache:false',jQuery会这样做。 – jwueller 2010-12-15 14:13:20

0

在Firefox中安装插件的萤火https://addons.mozilla.org/en-US/firefox/addon/1843/

一旦你安装了插件,状态栏右边会出现一个错误符号。

点击它。然后更改选择框。在萤火虫控制台中会有一行。

在那里您可以看到发送到服务器的所有数据和来自服务器的响应。这将帮助您确定问题。