我想要做的是在下拉列表中选择tarjet值到数据结果列表。让这些得到下拉:
var body = String.format("{{'__metadata':{{'type':'{0}'}},'Nombre':'{1}','Empresa':'{2}','Correo':'{3}','Area':'{4}','Telefono':'{5}','Mensaje':'{6}'}}",
GetItemTypeForListName('Contacto'), jQuery("#txtNombreCompleto2").val(), jQuery("#txtNombreEmpresa").val(),jQuery("#exampleInputEmail2").val(),$('#dropOficina2').val(),jQuery("#txtTelefono2").val(),jQuery("#txtMensaje2").val());
我的$('#dropOficina2')。val()有3个值:" Finanzas"," Operacion"和#34; Recursos Humanos" 因此,根据选择的值,它会将值返回到正文
我得到了Title和Correo的列表,如下所示:
var query = "?$select=Title,Correo";
$.ajax({
url: url + "/_api/web/lists/getbytitle('ContactosCorreos')/items" + query,
method: 'GET',
headers: { "Accept": "application/json; odata=verbose" },
success: function(data) {
for (var i = 0; i < data.d.results.length; i++) {
console.log("Title: "+data.d.results[i].Title);
console.log("Correo: "+data.d.results[i].Correo); }
}});
所以我在Title中得到了我想要匹配的3个值:&#34; Finanzas&#34;,&#34; Operacion&#34;和#34; Recursos Humanos&#34; 其中每一个都有不同的价值,如Finanzas = finanzas@hotmail.com
所以&#34;到&#34;下面的变量我想做这些:如果用户选择&#34; Finanzas&#34;在下拉列表中,它查找&#34; Finanzas&#34;进入标题列表并返回&#34; Correo&#34;所选下拉列表的值
jQuery.ajax({
url: url + "/_api/web/lists/getbytitle('Contacto')/items",
type: "POST",
contentType: "application/json;odata=verbose",
data: body,
async:false,
headers: {
"Accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data) {
var from = "xxx.hotmail.com",
to = "", //there is that I want to change depending of selected dropdown value
body = "Mail enviado",
subject ="Hay un nuevo Contacto!!";
var urlTemplate = url + "/_api/SP.Utilities.Utility.SendEmail";
$.ajax({
contentType: 'application/json',
url: urlTemplate,
type: "POST",
async:false,
data: JSON.stringify({
'properties': {
'__metadata': { 'type': 'SP.Utilities.EmailProperties' },
'From': from,
'To': { 'results': [to] },
'Body': body,
'Subject': subject
}
}
),
headers: {
"Accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data) {
alert("Gracias por contactarnos!");
window.location= siteurl+"/SitePages/Home.aspx"
},
error: function (err) {
console.log(err);
alert("Error al enviar el correo");
}
});
我试试这些:但它总是发给我一些&#34;标题&#34;和&#34; Correo&#34;
var selectedvalue = $("#dropOficina2").val();
var to="";
var query = "?$select=Title,Correo";
$.ajax({
url: url + "/_api/web/lists/getbytitle('ContactosCorreos')/items" + query,
method: 'GET',
headers: { "Accept": "application/json; odata=verbose" },
success: function(data) {
for (var i = 0; i < data.d.results.length; i++) {
console.log("Title: " + data.d.results[i].Title);
console.log("Correo: " + data.d.results[i].Correo);
}
if (selectedvalue === "Finanzas") {
to = data.d.results.Correo;
} else if (selectedvalue === "Operación") {
to = data.d.results.Correo;
} else if (selectedvalue === "Recursos Humanos") {
to = data.d.results.Correo;
}
}});
答案 0 :(得分:0)
您的条件声明将您的&#34;设置为&#34;变量应该进入你的for循环:
var selectedvalue = $("#dropOficina2").val();
var to = "";
var query = "?$select=Title,Correo";
$.ajax({
url : url + "/_api/web/lists/getbytitle('ContactosCorreos')/items" + query,
method : 'GET',
headers : {
"Accept" : "application/json; odata=verbose"
},
success : function (data) {
for (var i = 0; i < data.d.results.length; i++) {
console.log("Title: " + data.d.results[i].Title);
console.log("Correo: " + data.d.results[i].Correo);
// move conditional statement into for loop
// check the value of item's title you really only need
//to have one condition if your Titles are unique
if (selectedvalue === data.d.results[i].Title) {
// access the results by index, just like you
//did in the console.log
to = data.d.results[i].Correo;
}
}
}
});
您可以通过在查询中对selectedValue使用$ filter来提高效率:
var query = "?$select=Correo&$filter=Title eq '" + selectedvalue +"'";
如果标题是唯一的,那么您只会获得一个Correo结果。