2016-07-06 19 views
1

私がしたいのは、データ結果のリストをドロップダウンで選択した値です。ではこれらのドロップダウンを取得する必要があります:3つの値選択した値と値を別のリストと比較する

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()している: "Finanzas"、 "Operacion" と "Recursos Humanos" だから、価値によってはそれが返す選択身体への値は

は、私はこれらのようなタイトルと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);   } 
     }}); 

だから、私は3つの値は、私が一致させたいというタイトルで取得:「Finanzas」、「Operacion」と「Recursos Humanosを" これらのそれぞれは、Finan zan = [email protected]

下の変数には次のようにします:ユーザーがドロップダウンで「Finanzas」を選択すると、「Finanzas」がタイトルリストにルックアップされ、「Correo」という値が返されます選択されたドロップダウンリスト

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"); 
       } 
      }); 

私はこれらを試してみてください。しかし、それはいつも私に「タイトル」と「Correo」

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

の配列あなたの変数は、あなたのために行くべき「する」に設定するというあなたの条件文を送信ループ:

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の上$フィルターを使用して、これは、より効率的に行うことができます:

var query = "?$select=Correo&$filter=Title eq '" + selectedvalue +"'"; 

タイトルが一意である場合は、あなただけの1つのCorreo結果を得るでしょう。

関連する問題