我正在尝试将多个值返回到jqueryAjax成功,但未能这样做。这就是我到目前为止所做的......
String emp = request.getParameter("ID");
ArrayList<String> al = new ArrayList();
al=ur.editLeave(emp);
String cl = al.get(0);
out.print(cl);
out.print(al.get(1));
out.print(al.get(2));
从这个jsp页面我尝试返回3个值。
$.ajax({
type: "GET",
data: 'ID=' + idel,
async: false,
url: "ForleaveMaster.jsp?Eleave=l",
success: function(cl, ml, ot) {
alert(cl, ml, ot);
$('input[id=ELM_CL]').val($.trim(cl));
$('input[id=ELM_ML]').val($.trim(cl));
$('input[id=ELM_OT]').val($.trim(cl));
},
error: function() {}
});
请帮帮我。
答案 0 :(得分:4)
您返回的所有内容都将作为第一个参数传递给您的函数。
$.ajax({
type: "GET",
data: 'ID=' + idel,
async: false,
url: "ForleaveMaster.jsp?Eleave=l",
success: function(data) {
var array_data = String(data).split("\n");
var cl = array_data[0],
mt = array_data[1],
ot = array_data[2];
alert(cl,ml,ot);
$('input[id=ELM_CL]').val($.trim(cl));
$('input[id=ELM_ML]').val($.trim(cl));
$('input[id=ELM_OT]').val($.trim(cl));
},
error: function() {
}
});
答案 1 :(得分:2)
您的方法肯定不会起作用:您只能返回一个“项目”。诀窍是将所有值放在该项中。将您的响应编码为JSON字符串(抱歉 - 在JSP中无法解决),但它看起来应该像这样:
{“cl”:“1”,“dl”:“2”,“cl”:“3”}
然后修改你的AJAX功能:
$.ajax({
type: "GET",
data: 'ID=' + idel,
dataType:'json'
async: false,
url: "ForleaveMaster.jsp?Eleave=l",
success: function(data) {
alert(data.cl,data.ml,data.ot);
$('input[id=ELM_CL]').val($.trim(data.cl));
$('input[id=ELM_ML]').val($.trim(data.ml));
$('input[id=ELM_OT]').val($.trim(data.ot));
},
error: function() {
}
});
我将async
设置为true
,否则您的浏览器会在服务器响应时冻结。使用Json的优势在于您可以添加其他数据或更改顺序,而不会破坏您的Javascript。
答案 2 :(得分:0)
我假设您要将值设置为表单输入?在这种情况下,用以下方式取代您的成功:
success: function(cl,ml,ot) { alert(cl,ml,ot);
$('input[id=ELM_CL]').val($.trim(cl));
$('input[id=ELM_ML]').val($.trim(ml));
$('input[id=ELM_OT]').val($.trim(ot));
},
您将所有字段设置为相同的cl值。
答案 3 :(得分:0)
众所周知,帮助某人编程的最佳方法是向他们展示示例。所以这是我的一部分。
PHP文件和回复
<?php
require_once('../../../wp-load.php');
$cs_confID = $_POST['cs_confID'];
$cs_date = $_POST['cs_date'];
$cs_obj = get_conf_id_for_insert($cs_date, $cs_confID);
$json_cs = array();
if(count($cs_obj) == 1)
{
$json_cs = array('cs_id'=>$cs_obj[0]->cs_id,'cs_date'=>$cs_obj[0]->cs_date); //Make array of files
echo json_encode($json_cs); //Encode json
}
else
{
echo '<p style="color:red">Status:Error. Please contact our support for further help!</p>';
}
?>
HTML和Jquery
$.ajax({ url: '../wp-content/themes/rirads-2012-child-theme/insert_conference_schedules.php',
data: {cs_date:$("#c_date").val(),cs_confID: $("#conf").val()},
beforeSend: function(){ $("#loaderAjax").show(); },
type: 'post',
success: function(output)
{
$("#loaderAjax").hide();
var obj = jQuery.parseJSON(output); //decode JSON response
$("#cs_id").val(obj.cs_id); //Fill the value of current cs_id into input field cs_id
$("#cs_date").val(obj.cs_date); //Fill the value of current cs_date into input field cs_date
//code goes on...
希望它会对你有所帮助.. :)