Jquery ajax przekazywanie 2 zmiennych z tab POST


(pain3hp) #1

Nie wiem jak przekazać do pliku php ładowanego ajaxem z jQuery dwie zmienne pobrane z pól tekstowych, dla jednej zmiennej działa bez zarzutów:

$("#pokaz").click(function(){

		var slowo=$("#imie").val();

		$.ajax(

		{

			url: 'aj.php',

			type: "POST",

			data: ({id:slowo}),

			success: function(html)

			{

				$('#raz').append(html);

			}

		});

	});

najdokładniej chodzi o to, tu mam index tablicy _POST['id'] a chce dodać drugi np _POST['wiek']

data: ({id:slowo})

(mario@) #2
data: {"id":slowo,"wiek":wiek },

albo

data: "id="+slowo+"&wiek="+wiek,

Bezpośrednio do wysyłania przez post jest też funkcja post()


(Lp 228) #3

Mam bardzo podobny problem jak kolega. Potrzebuję przesłać przez JQuery.ajax dwie wartości do skryptu PHP (zarówno przez POSTA jak i GET) który doda do siebie te liczby i je zwróci. Oto mój kod - bardzo prosiłbym o radę:

$(document).ready(function() {	//factory function, (document).ready sprawdza czy strona się wczytała

			$("#DodajPOST").click(function() {	//określam co ma się stać przy naciśnięciu przycisku

				var number1val = $("#number1").val();	//przekazanie wartości z pól do zmiennych

				var number2val = $("#number2").val();

		$.ajax({  

		type: "POST",

		url: "dodajpost.php",  

		data: { "number1": number1val, "number2": number2val },  

		dataType: "json",

		success: function(data) {

		$("#wynik p").html(data); //przekazanie wyniku do div w htmlu o id=wynik (p dla wycentrowania)  


   });  

  });  

 });

});

A to kod html:

Liczba 1: 

Liczba 2:

[/code] A to PHP:
[code] <?php $number1 = $_POST['number1']; $number2 = $_POST['number2']; $sum = $number1 + $number2; print "Wynik: ".$sum; ?>

Wydaje mi się, że błąd jest albo w success albo data, ale nie mogę dojść jego przyczyny.


(Grzesie K) #4
dataType: "json"

W js deklarujesz że wynik będzie w formacie json a zwracasz jako text. Dodaj json_encode() do php lub po prostu zmień tą wartość. Dodatkowo proponuje zainteresować się funkcją serialize() zamiast przypisywać wartości z każdego pola formularza.


(pain3hp) #5

ja bym to zrobił tak:

$.post("skrypt.php",{"number1": number1val, "number2": number2val},function(data){

 alert(data);

});

Jak czegoś nie wiesz gdzie masz błąd to alertuj po kolei zmienne wtedy widzisz co w nich jest. A do ajaxa idealny jest firebug, zakładka konsola