繁体   English   中英

如何在jQuery中为返回的响应分配变量

[英]how do I assign a variable to a returned response in jQuery

我想将返回值(仅文本)分配给jQuery中的变量。 我这样写:

 var hm=22;

   $.ajax({
       type: "GET",
       url: "ajax_check_match.php",                                                     
       dataType: "text",
       success:callback
       });

  function callback(data, status)
    {   
           // assign ajaxed value to cm variable                                                
    cm=data;

    if (hm != cm)
    {
    dosomething();
    }
     }

但是它每次都会失败。 为什么cm变量在发送请求时总是变得不确定。 我将php文件设置为返回1,但仍然显示未定义。 我在浏览器中打开了ajax_check_match.php,看到“ 1”。

我看不到使用XML或JSON的意义,因为一个简单的数字就足够了。 还是我必须使用XML / JSON?

更新:至于找到未定义的结果...我在回调函数和cm始终返回未定义之后写了$(“ msgbox”)。append(“ hm是” + hm +“和cm是+ cm)。hm打印22。它设置了三秒之间的间隔,因此它保持追加hm为22且cm未定义。

最新更新:我是个白痴。 期。 ajax_check_msg.php的位置错误-代码不同。 我检查了错误的页面。 但是请放心,我当然感谢您的建议!

如果您的PHP文件返回1 ,因为hm设置为22,则cm != hm总是正确的。

cm显示未定义...,因为您没有定义它。

var cm = ''; // or something else

首先在某个地方初始化它。

我实际上并不了解jQuery,但是在这里看,您似乎希望将“ html”作为您的数据类型。 我还建议您进行alert(cm); 定义它之后,看看它是什么,而不仅仅是测试它是否不是一个特定值。

您是否肯定22即将归还? 萤火虫显示响应是什么? 我敢打赌,那是22东西

AJAX是异步发生的,这意味着回调函数在响应返回时发生,而不是在代码中出现的顺序中。

您的代码按以下顺序进行:

  1. var hm=22;
  2. $.ajax开火
  3. 调用此代码的代码完成
  4. 稍后您的响应返回,并且触发该callback函数。

因此,您无法返回cm ,除非回调函数运行,否则将不会对其进行设置。 取而代之的是,使用回调函数中的cm调用需要发生的任何代码,因此它将在变量准备就绪时运行。

输出data以查看是否符合您的期望。 更好的是,不要设置另一个多余的变量,而只需使用if(hm != data)

hm永远不会等于cmdata因为前者是数字,而后者2是字符串。 首先需要做一些类型转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM