在 $.ajax 成功函数中传递两个参数
Posted
技术标签:
【中文标题】在 $.ajax 成功函数中传递两个参数【英文标题】:Pass two parameters in $.ajax success function 【发布时间】:2011-09-12 23:36:32 【问题描述】:我有一个小问题。我想将两个变量从 php 传递给 $.ajax 成功函数
我有这段代码是用 JS 写的:
$.ajax( 类型:“POST”, 网址:路径, 数据:“价值=”+信息, 成功:功能(数据,数据1) 如果(数据==1) $(id).css("backgroundColor","green"); $(id).attr("只读","只读"); $(image).attr("src",data1); 别的 $(id).css("backgroundColor","red"); );我的 PHP 代码是:
if(isset($_POST['value']) 和 !empty($_POST['value'])) $结果=0; $image="src/photo1.jpg"; $value=trim($_POST['value']); if($value=="Abracadabra" 或 strcmp($value,"Abracadabra")==0) $结果=1; $image="src/abracadabra.jpg"; 别的 $结果=0; $image="src/photo1.jpg"; 回显$结果; 回声$图像;在那里,我想同时“回显”两个变量以传递给 $.ajax 成功函数。
有可能吗?我不指 JSON,我只指 PHP 和 POST 方法。
谢谢
【问题讨论】:
你能把它们合并成一个字符串,然后再把它们分开吗? “不引用 JSON”是什么意思?您可以轻松地从 PHP 代码中返回 JSON 字符串,而不是 0 或 1... 我不再使用 JSON。 太糟糕了,JSON 将是进行此练习/案例的更简洁的方式。 【参考方案1】:来自 php 代码的响应将类似于:
0src/photo1.jpg
你必须用 javascript 解析它(可能用正则表达式或子字符串)
success:function(data,data1)
var result = data.substring(0,1);
var image = data.substring(1);
// ... your code
请记住,如果 $result
变量的长度超过一个字符,可能会给您带来麻烦 :)
【讨论】:
谢谢 Teneff,你打开了我的大脑 :D...我明白了,如果结果超过 1 个字符(例如 3 个字符),我会这样做:var result=data.substring( 0,3) 和 var image=data.substring(3)。我知道了。【参考方案2】:让 PHP 回显类似 "value1|value2|etc" 的字符串(或任何其他字符(-sequence)不太可能出现在实际数据中)
然后在 javascript 端执行 string.split('|') 将返回的字符串分解为一个整洁的小数组。你甚至可以做 key1:value1|key2:value2 然后使用解决方案presented here to split the key:value pairs up into an object.
【讨论】:
以上是关于在 $.ajax 成功函数中传递两个参数的主要内容,如果未能解决你的问题,请参考以下文章