在 $.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","re​​d"); );

我的 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 成功函数中传递两个参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 $.ajax 的成功回调中传递 $(this)

jQuery $.ajax(),将成功数据传递给单独的函数

在 jquery 的 post 中传递参数

将变量从 PHP 传递到 AJAX 成功函数

从arraylist返回值到ajax成功函数

在 AJAX 成功的函数中使用时数组内容不会改变