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>
{
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";
}
?>
$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