Skocz do zawartości

ajax prototype + mysql


mercii

Rekomendowane odpowiedzi

Witam

Od kilku dni bawię się Ajaxem a dokładniej frameworkiem Protype.

Napisałem już kilka skryptów jednak z jednym mam pewien kłopot.

Jest to dodawanie danych do bazy Mysql.

Wszystko chodzi ładnie tzn wpisuje pozycje do formularza dane się dodają do bazy jednak zawsze pokazuje błąd że użytkownik nie został dodany.

Dziwną sprawą jest to że jeżeli nie wypełnię pierwszego pola formularza (imie) to wszystko zadziała jak powinno.

Oto fragmenty kodu:

plik panel.html

function dodaj3() 
{
Dialog.confirm($('dodaj').innerHTML, { className:"alphacube", width:400, okLabel: "dodaj", cancelLabel: "cancel", onOk:function(win) 
{
	new Ajax.Request('dodaj.php', 
	{

		parameters: { nazwisko: $F('nazwisko'), imie: $F('imie'),  ulica: $F('ulica'), numerdomu: $F('nr_Dom'), 
		numerlokal: $F('nr_Lokal'), telefon: $F('nr_Telefon'), pesel: $F('nrpesel'), login: $F('login'), haslo: $F('haslo') },  
		onSuccess: function(transport) 
		{
			var notice = $('login_error_msg');

			if (transport.responseText == "OK") 
			{

				window.location = "https://localhost/panel.html";

				return false;
			}
			else 
			{
				notice.innerHTML='Nie udało się dodać nowego klienta';
				setTimeout('Windows.focusedWindow.close()', 2000);
			}

			notice.show();

			Windows.focusedWindow.updateHeight();
			new Effect.Shake(Windows.focusedWindow.getId()); return false;
		},
		onFailure: function()
		{
			alert("Bl±d w poł±czeniu z serwerem!");
		}
	});
}});
}		  
</script>
<div id="dodaj" style="display:none"> <p><span id='login_error_msg' class="login_error" style="display:none"> </span></p>
<div style="clear:both"></div>
<p><span class="login_label">Imie</span> <span class="login_input"><input type="text" id="imie"/></span></p>
<div style="clear:both"></div>
<p><span class="login_label">Nazwisko</span> <span class="login_input"><input type="text" id="nazwisko"/></span></p>
<div style="clear:both"></div> 
<p><span class="login_label">Ulica</span> <span class="login_input"><input type="text" id="ulica"/></span></p>
<div style="clear:both"></div> 
<p><span class="login_label">Numer domu</span> <span class="login_input"><input type="text" id="nr_Dom"/></span></p>
<div style="clear:both"></div> 
<p><span class="login_label">Numer mieszkania</span> <span class="login_input"><input type="text" id="nr_Lokal"/></span></p>
<div style="clear:both"></div> 
<p><span class="login_label">Telefon</span> <span class="login_input"><input type="text" id="nr_Telefon"/></span></p>
<div style="clear:both"></div> 
<p><span class="login_label">Pesel</span> <span class="login_input"><input type="text" id="nrpesel"/></span></p>
<div style="clear:both"></div> 
<p><span class="login_label">Login</span> <span class="login_input"><input type="text" id="login"/></span></p>
<div style="clear:both"></div>
<p><span class="login_label">Hasło</span> <span class="login_input"><input type="text" id="haslo"/></span></p>
<div style="clear:both"></div>  

plik dodaj.php

<?php
$imie = $_POST["imie"];
$nazwisko = $_POST["nazwisko"];
$ulica = $_POST["ulica"];
$nr_dom = $_POST["numerdomu"];
$nr_lokal = $_POST["numerlokal"];
$telefon = $_POST["telefon"];
$pesel = $_POST["pesel"];
$login = $_POST["login"];
$haslo = $_POST["haslo"];
echo $imie;
$db_lnk = mysql_connect("localhost","root","krasnal");
mysql_select_db('stacja', $db_lnk);
$query = "INSERT INTO klient VALUES('','$imie','$nazwisko','$ulica','$nr_dom','$nr_lokal','$telefon','$pesel','1','$login','$haslo')";
if(!$rezultat = mysql_query($query, $db_lnk)){
@mysql_close();
echo "false";
}
else
{
@mysql_close();
 echo "OK";
}
?>

Bardzo proszę o pomoc ponieważ jestem laikiem jeżeli chodzi o ajax a ten problem zatrzymał mnie w dalszym poznawaniu tego systemu.

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Dodaj funkcje echo mysql_error() w celu sprawdzenia czy baza nie zwraca błędu;

Wysil ten sam formularz bez ajaxa z akcją na plik w którym będziesz miał dodawanie do bazy i sprawdź czy dodaje;

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Baza nie zgłasza żadnych błędów.

Dane są dodawana do bazy ale chodzi o to że skrypt po udanym INSERT INTO ... nie przekierowuje na https://localhost/panel.html tylko pokazuje dalsze instrukcej po else "nie dodano użytkownika" chociaż do bazy został dodany prawidłowo.

Skryp php puszczony na sucho zwraca wartość OK.

Nieprawidłowe działanie nie występuje jeżeli nie wypełnię pierwszego pola formularza.

Odnośnik do komentarza
Udostępnij na innych stronach

Problem rozwiązany :

$haslo = $_POST["haslo"];
echo $imie;

tego echo nie powinno tam być ponieważ skryp po wykonaniu zwracał np TomekOK a bez imienia było juz OK.:D:)

A znasz może Kolego jakąś dobra stronę z przykładem jak pobierać AJAXEM dane z bazy i wyświetlać je w tabelach.

Z góry dzięki

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności