admin管理员组文章数量:1291203
I want to pass multiple parameters to my ajax
code. Which is 3
parameters. So, I added like below
$(document).ready(function () {
SearchText();
});
function SearchText() {
$("#txt712").autoplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "FrmAgreementMaster.aspx/GetAutoCompleteData",
//data: "{'username':'" + extractLast(request.term) + "'}",
data: JSON.stringify("{'username':'" + extractLast(request.term) + "'}", "{'taluka':'" + document.getElementById('ddlTaluka').value + "'}", "{'village':'" + document.getElementById('ddlVillage').value + "'}"),
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
},
focus: function () {
return false;
},
select: function (event, ui) {
var terms = split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push("");
this.value = terms.join(", ");
return false;
}
});
$("#txt712").bind("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).data("autoplete").menu.active) {
event.preventDefault();
}
})
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
}
By taking reference from HERE of Darin's
code.
But it is taking me to ERROR
part while calling the function. How do I pass multiple parameters to use it.
update
Also, I took the ajax reference from here
Response code:-
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public static List<string> GetAutoCompleteData(string username, string taluka, string village)
{
List<string> result = new List<string>();
using (OracleConnection ObjPriCon = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConn"].ToString()))
{
using (OracleCommand cmd = new OracleCommand("select distinct survey_area_7_12 FROM xxcus.xxacl_pn_farming_mst WHERE survey_area_7_12 " +
"LIKE '%' || :searchtext || '%' and taluka = '" + taluka + "' and village = '" + village + "'", ObjPriCon))
{
ObjPriCon.Open();
cmd.Parameters.AddWithValue(":searchtext", username.ToLower());
OracleDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
result.Add(dr["survey_area_7_12"].ToString());
}
}
return result;
}
}
}
I want to pass multiple parameters to my ajax
code. Which is 3
parameters. So, I added like below
$(document).ready(function () {
SearchText();
});
function SearchText() {
$("#txt712").autoplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "FrmAgreementMaster.aspx/GetAutoCompleteData",
//data: "{'username':'" + extractLast(request.term) + "'}",
data: JSON.stringify("{'username':'" + extractLast(request.term) + "'}", "{'taluka':'" + document.getElementById('ddlTaluka').value + "'}", "{'village':'" + document.getElementById('ddlVillage').value + "'}"),
dataType: "json",
success: function (data) {
response(data.d);
},
error: function (result) {
alert("Error");
}
});
},
focus: function () {
return false;
},
select: function (event, ui) {
var terms = split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push("");
this.value = terms.join(", ");
return false;
}
});
$("#txt712").bind("keydown", function (event) {
if (event.keyCode === $.ui.keyCode.TAB &&
$(this).data("autoplete").menu.active) {
event.preventDefault();
}
})
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
}
By taking reference from HERE of Darin's
code.
But it is taking me to ERROR
part while calling the function. How do I pass multiple parameters to use it.
update
Also, I took the ajax reference from here
Response code:-
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public static List<string> GetAutoCompleteData(string username, string taluka, string village)
{
List<string> result = new List<string>();
using (OracleConnection ObjPriCon = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConn"].ToString()))
{
using (OracleCommand cmd = new OracleCommand("select distinct survey_area_7_12 FROM xxcus.xxacl_pn_farming_mst WHERE survey_area_7_12 " +
"LIKE '%' || :searchtext || '%' and taluka = '" + taluka + "' and village = '" + village + "'", ObjPriCon))
{
ObjPriCon.Open();
cmd.Parameters.AddWithValue(":searchtext", username.ToLower());
OracleDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
result.Add(dr["survey_area_7_12"].ToString());
}
}
return result;
}
}
}
Share
Improve this question
edited May 23, 2017 at 10:27
CommunityBot
11 silver badge
asked Nov 9, 2016 at 7:07
HEENHEEN
4,72713 gold badges83 silver badges173 bronze badges
1
- add data: JSON.stringify("{'username':'" + extractLast(request.term) + "','taluka':'" + document.getElementById('ddlTaluka').value + "','village':'" + document.getElementById('ddlVillage').value + "'}"), single json string – pawan sen Commented Nov 9, 2016 at 7:12
5 Answers
Reset to default 5You can pass multiple params like:
$.ajax({
...
data: {
var1: val1,
var2: val2,
var3: val3,
var4: val4,
// and many more
}
...
});
In case you want to pass an array, than you can use 'JSON.stringify'.
You don't need multiple object, you need multiple properties in a object
data: JSON.stringify({username: extractLast(request.term) , taluka: $('#ddlTaluka').val(), village:$('#ddlVillage').val()}),
Ps: Don't forget that you trigger the autoplete at page ready, make sure you have values in those inputs
Try to pass data like this:
data: JSON.stringify([
{username: extractLast(request.term)},
{taluka: document.getElementById('ddlTaluka').value},
{village: document.getElementById('ddlVillage').value}
]),
Or like this:
data: {
username: extractLast(request.term),
taluka: document.getElementById('ddlTaluka').value,
village: document.getElementById('ddlVillage').value
},
The simplest way is to assign an object containing the key value pair of your data to the data attribute of your ajax call.
$.ajax({
type: 'POST',
url: url,
data: {
'name': $('#name').val(),
'email': $('#email').val(),
// so on...
}
})
and then you can simply get them in your post request by the names you specify here.
Please try to do this.
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "FrmAgreementMaster.aspx/GetAutoCompleteData",
//data: "{'username':'" + extractLast(request.term) + "'}",
data: JSON.stringify({
username: extractLast(request.term),taluka:document.getElementById('ddlTaluka').value,village:document.getElementById('ddlVillage').value
}),
error: function (result) {
alert("Error");
}
});
本文标签: javascriptPassing multiple parameters in ajax is giving me errorStack Overflow
版权声明:本文标题:javascript - Passing multiple parameters in ajax is giving me error - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741523233a2383313.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论