将所选值与值进行比较到另一个列表

时间:2016-07-06 17:05:48

标签: javascript jquery sharepoint-2013

我想要做的是在下拉列表中选择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;                
                }

        }}); 

1 个答案:

答案 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结果。