Muszę serializować wszystkie dane wejściowe z formularza na ciąg JSON.
Z pomocą this post, mogę z powodzeniem stworzyć prawidłowy ciąg jak poniżej:jQuery: Jak zatrzymać funkcję AJAX wymykającą się z łańcucha JSON używanego do danych POST
{"input01":"value01","input02":"value02","input03":"value03"}
Jednak, gdy próbuję użyć ciąg POST danych przy użyciu funkcji jQuery Ajax, wydaje się, aby dodać backslashy do łańcucha , w wyniku czego ciąg JSON jest wysyłany za pomocą GET zamiast POST. Załadowany strona PHP zwraca $_GET
tablicy:
[{\"input01\":\"value01\",\"input02\":\"value02\",\"input03\":\"value03\"}] =>
I testowano ciąg JSON pomocą alert()
celu potwierdzenia struktury jest poprawna, po czym stosuje w funkcji AJAX.
Dodatkowo, jeśli po prostu ręcznie wpisz prawidłowy ciąg JSON, AJAX wysyła poprawnie dane.
Mój kod wygląda następująco:
var dataJSON = $.toJSON($('#form').serializeObject());
alert(dataJSON);
$.ajax({
type: "POST",
url: "ajax.php",
data: 'Query01=01&Query02=02',
dataType: 'json',
success: function(data){
if (data==1){
$('#wrap').load('ajax.php',dataJSON);
}
}
});
Dzwonisz '.ajax()', następnie złożenia kolejnego wniosku z 'ajax .load()'. Czy to jest poprawne? –
Roatin, zgadza się. Powyższy przykład jest uproszczony z mojego aktualnego skryptu. Rzeczywisty skrypt wysyła dane za pomocą $ .ajax, który musi zostać sprawdzony, jeśli funkcja zostanie pomyślnie zweryfikowana, funkcja $ .load ładuje HTML wygenerowany z danych opublikowanych przez ciąg JSON. – ticallian