Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ajax prototype + mysql
Forum PHP.pl > Forum > XML, AJAX
mercii
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
CODE
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 = "http://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
CODE
<?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
melkorm
a zrób alert na
Kod
transport.responseText


czy zwraca false.

A tak ogólnie to obstawiam zapytanie mysql, dodaj jeszcze or die, i spradź czy przypadkiem błędu nie ma, ale skoro twierdzisz żen iby wiersze w bazie się dodają ... .
mercii
Problem rozwiązany :
CODE
$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.smile.gifsmile.gif
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
Fifi209
Cytat(mercii @ 24.03.2009, 17:03:16 ) *
Problem rozwiązany :
CODE
$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. smile.gif smile.gif
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


Ajax może wywołać np. skrypt php w tle ale sam raczej nie pobierze informacji z bazy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.