Come inviare più campi dati tramite Ajax?

Sono bloccato: sto tentando di inviare un modulo utilizzando AJAX, ma non riesco a trovare un modo per inviare più campi dati tramite la mia chiamata AJAX.

$(document).ready(function() { $("#btnSubmit").click(function() { var status = $("#activitymessage").val(); var name = "Ronny"; $.ajax({ type: "POST", url: "ajax/activity_save.php", **data: "status="+status+"name="+name"**, success: function(msg) {... 

Ho provato tutti i tipi di cose:

 data: {status: status, name: name}, 

O anche cose del genere solo a scopo di test:

 data: "status=testing&name=ronny", 

Ma qualunque cosa provi, non ottengo nulla nel mio activity_save.php quindi nulla nel mio SQL.

Quindi, qual è la syntax corretta per inserire più righe di dati nella mia chiamata AJAX?

La syntax corretta è:

 data: {status: status, name: name}, 

Come specificato qui: http://api.jquery.com/jQuery.ajax/

Quindi, se ciò non funziona, avvertirei queste variabili per assicurarmi che avessero dei valori.

puoi inviare dati tramite JSON o tramite POST normale, ecco un esempio per Json.

  var value1 = 1; var value2 = 2; var value3 = 3; $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "yoururlhere", data: "{'data1':'" + value1+ "', 'data2':'" + value2+ "', 'data3':'" + value3+ "'}", success: function (result) { //do somthing here } }); 

Se vuoi usarlo tramite post normale prova questo

  $.ajax({ type: "POST", url: $('form').attr("action"), data: $('#form0').serialize(), success: function (result) { // do somthing here } }); 

Prova con le virgolette:

 data: {"status": status, "name": name} 

Deve funzionare bene.

 var countries = new Array(); countries[0] = 'ga'; countries[1] = 'cd'; 

dopo puoi fare come:

 var new_countries = countries.join(',') 

dopo:

 $.ajax({ type: "POST", url: "Concessions.aspx/GetConcessions", data: new_countries, ... 

Questa cosa funziona come un formato di stringa JSON.

Secondo http://api.jquery.com/jquery.ajax/

 $.ajax({ method: "POST", url: "some.php", data: { name: "John", location: "Boston" } }) .done(function( msg ) { alert( "Data Saved: " + msg ); }); 

Questo funziona per me.

Ecco il mio PHP:

 

" value=''> " value=''> " value=''>

Ecco il mio jQuery usando AJAX:

 $("#addNewVendor").click(function() { alert(); $.ajax({ type: "POST", url: "create.php", data: {vendorName: $("#vendorName_new").val(), owner: $("#owner_new").val(), city: $("#city_new").val()}, success: function(){ $(this).hide(); $('div.success').fadeIn(); showUsers() } }); }); 

Sono un principiante in ajax ma penso di usare questo “data: {status: status, nome: nome}” metodo datatype deve essere impostato su JSON ie

 $.ajax({ type: "POST", dataType: "json", url: "ajax/activity_save.php", data: {status: status, name: name}, 

Usa questo

 data: '{"username":"' + username + '"}', 

Provo molta syntax per lavorare con laravel funziona per me per laravel 4.2 + ajax.

Prova questo:

 $(document).ready(function() { $("#btnSubmit").click(function() { var status = $("#activitymessage").val(); var name = "Ronny"; $.ajax({ type: "POST", url: "ajax/activity_save.php", data: {'status': status, 'name': name}, success: function(msg) {... 

Sono nuovo di AJAX e ho provato questo e funziona bene.

 function q1mrks(country,m) { // alert("hellow"); if (country.length==0) { //alert("hellow"); document.getElementById("q1mrks").innerHTML=""; return; } if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("q1mrks").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","../location/cal_marks.php?q1mrks="+country+"&marks="+m,true); //mygetrequest.open("GET", "basicform.php?name="+namevalue+"&age="+agevalue, true) xmlhttp.send(); } 

Ecco cosa funziona per me dopo 2 giorni di grattacapo; il motivo per cui non sono riuscito a ottenere l’impostazione “dati” di AJaX per l’invio di due chiavi / valori (inclusa una variabile contenente dati di immagini grezzi) era un mistero, ma sembra essere quello per cui è stata scritta la funzione jQuery.param () ;

crea un array params con le tue variabili, senza virgolette:

 var params = { key_name1: var_1, key_name2: var_2 }; // etc. var ser_data = jQuery.param( params ); // arbitrary variable name 

Usa variabile ser_data come valore dei tuoi dati;

  $.ajax({ type: 'POST', url: '../php_handler_url.php', data: ser_data, }).success(function(response) { alert(response); }); 

La documentazione è qui: https://api.jquery.com/jQuery.param/

Spero possa aiutare!

Prova ad usare :

  $.ajax({ type: "GET", url: "something.php", data: { "b": data1, "c": data2 }, dataType: "html", beforeSend: function(){ }, error: function(){ alert("Error"); }, success: function(data){ $("#result").empty(); $("#result").append(data); } }); });