Ich versuche verzweifelt, mehrere POST-Variablen über AJAX zu senden, aber einfach nicht schaffen, die Formatierung richtig zu bekommen ... Problem ist, dass ich sowohl eine fest codierte/geschrieben action=problem_lookup
Variable und ein dynamisches Feld Eingang als $(this).val
und kippe verwalten nur beide in eine Datenkette zu bekommen ...AJAX - mehrere POST-Daten senden
dies gut funktioniert:
data: 'problem=' + $(this).val(),
Dies gilt nicht:
data: { action: 'problem_lookup' , problem: $("problem").val() },
data: { action: 'problem_lookup' , problem: $(this).val() },
data: { action: problem_lookup, problem: $(this).val() },
Ich habe zahlreiche Formate aus anderen Threads ausprobiert und das offizielle jquery-Handbuch angeschaut, aber das scheint mir nicht klar zu werden. Jede Hilfe wird geschätzt.
EDIT:
vollständige Skript unten, versucht, die bisher veröffentlicht Lösungen aber keinen Erfolg. $("problem")
ist ein <select>
Feld (mit Select2 läuft) daher sollte mich nicht so viel Frustration verursachen, zumal der ursprüngliche Ansatz mit data: 'problem=' + $(this).val(),
gut funktioniert.
$(function() {
$('#problem').change(function() { // on change in field "problem"
var data = {
action: 'problem_lookup',
problem: $("problem").val()
}
$.ajax({ // launch AJAX connection
type: 'POST', // via protocol POST
url: 'ajax.php',
//data: 'problem=' + $(this).val(), // send $_POST string
//data:"{'action':'"+action+"','problem':'"+$(this).val()+"'}",
//data:"{'action':'problem_lookup','problem':'"+$(this).val()+"'}",
//data: { action: 'problem_lookup' , problem: $("problem").val() },
//data : data_string,
data: $.param(data),
dataType: 'json', // encode with JSON
success: function (data)
{
// do something
},
});
});
});
Wenn Sie mehrere Werte in 'Daten' übergeben möchten, übergeben Sie es als Array. –