[英]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是异步发生的,这意味着回调函数在响应返回时发生,而不是在代码中出现的顺序中。
您的代码按以下顺序进行:
var hm=22;
$.ajax
开火 callback
函数。 因此,您无法返回cm
,除非回调函数运行,否则将不会对其进行设置。 取而代之的是,使用回调函数中的cm
调用需要发生的任何代码,因此它将在变量准备就绪时运行。
输出data
以查看是否符合您的期望。 更好的是,不要设置另一个多余的变量,而只需使用if(hm != data)
。
hm
永远不会等于cm
或data
因为前者是数字,而后者2是字符串。 首先需要做一些类型转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.