cómo enviar datos múltiples con $ .ajax () jquery

Estoy tratando de enviar datos múltiples usando el método j query $ .ajax a mi script php pero puedo pasar solo datos cuando concateno datos múltiples obtengo un error de índice indefinido en mi script php tat significa que la solicitud ajax está hecha pero los datos no están enviado necesito saber cómo debo formatear múltiples datos para enviarlos sucesivamente a la secuencia de comandos de procesamiento en nombre vale par aquí es lo que he escrito

 $(document).ready(function() { $('#add').click(function () { var name = $('#add').attr("data_id"); var id = $('#add').attr("uid"); var data = 'id='+ id & 'name='+ name; // this where i add multiple data using ' & ' $.ajax({ type:"GET", cache:false, url:"welcome.php", data:data, // multiple data sent using ajax success: function (html) { $('#add').val('data sent sent'); $('#msg').html(html); } }); return false; }); });      

Puede crear un objeto de pares clave / valor y jQuery hará el rest por usted:

 $.ajax({ ... data : { foo : 'bar', bar : 'foo' }, ... }); 

De esta forma, los datos se codificarán correctamente de forma automática. Si quiere inventar su propia cadena, asegúrese de usar encodeURIComponent() : https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent

Su código actual no funciona porque la cadena no está configurada correctamente:

 'id='+ id & 'name='+ name 

debiera ser:

 'id='+ encodeURIComponent(id) + '&name='+ encodeURIComponent(name) 

Cambiar var data = 'id='+ id & 'name='+ name; como a continuación,

usa esto en su lugar …..

 var data = "id="+ id + "&name=" + name; 

esto va a funcionar bien 🙂

 var data = 'id='+ id & 'name='+ name; 

El ampersand necesita ser citado también:

 var data = 'id='+ id + '&name='+ name; 
 var value1=$("id1").val(); var value2=$("id2").val(); data:"{'data1':'"+value1+"','data2':'"+value2+"'}" 
 var my_arr = new Array(listingID, site_click, browser, dimension); var AjaxURL = 'http://example.com'; var jsonString = JSON.stringify(my_arr); $.ajax({ type: "POST", url: AjaxURL, data: {data: jsonString}, success: function(result) { window.console.log('Successful'); } }); 

Esto ha estado funcionando para mí por bastante tiempo.

Yo recomendaría usar un hash en lugar de una cadena param:

 data = {id: id, name: name} 

puedes usar FormData

mira mi fragmento de MVC

 var fd = new FormData(); fd.append("ProfilePicture", $("#mydropzone")[0].files[0]);// getting value from form feleds d.append("id", @(((User) Session["User"]).ID));// getting value from session $.ajax({ url: '@Url.Action("ChangeUserPicture", "User")', dataType: "json", data: fd,//here is your data processData: false, contentType: false, type: 'post', success: function(data) {}, 
 var CommentData= "u_id=" + $(this).attr("u_id") + "&post_id=" + $(this).attr("p_id") + "&comment=" + $(this).val(); 
  var value1=$("id1").val(); var value2=$("id2").val(); data:"{'data1':'"+value1+"','data2':'"+value2+"'}" 

Puedes usar esta forma para pasar datos