Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] nie czyta zmiennej
Forum PHP.pl > Forum > Po stronie przeglądarki
XP'ek
Witam

Jak sprawic zeby czytalo mi zmienna a z pliku php? Korzystam z biblioteki advAJAX.


kod js:
Kod
function vLogin()
{
var vlogin = document.getElementById('vlogin');
var login  = document.register.login;


if(login.value.length >= 6)
{
advAJAX.get({
    url: "modules/account/validate.php?login="+login.value,
    onSuccess : function(obj) {var a; a = obj.responseText; if(a == 1) {vlogin.innerHTML = "prawda";}  if(a == 0) {vlogin.innerHTML = "falsz";}},
    onError : function(obj) {alert("Error: " + obj.status);},
});


}
else
{
vlogin.innerHTML = " <img src='img/icons/_00.png'> <font face='Verdana size='1' color='red'>Zbyt krótki login</font>";
}
}


oraz plik validate.php
Kod
if(isset($_GET['login']))
{
$login = $_GET['login'];


$query="SELECT * FROM `user` WHERE `login`='$login'";
$sql=mysql_query($query);

if($rows=mysql_fetch_array($sql))
{
print "0";
}
else
{
print "1";
}
}



chodzi mi o to aby plik validate.php przekazal w jakis sposob zmienna do js.
marcint83
Na pocątek zobacz czy coś dostajesz w obj.responseText;

Zrób sobie w onSuccess:
  1. alert(obj.responseText)


I jak dostaniesz wartości 1/0

to spróbuj (otrzymane wartości dać w cudzysłów):

  1. if(a == '1') {vlogin.innerHTML = "prawda";} if(a == '0') {vlogin.innerHTML = "falsz";}}
XP'ek
próbowalem i nic, jesli o to chodzi nawet korzystalem z opcji usówania białych znakow ;( niby drukuje 0/1 ale warunek if i tak nie dziala
marcint83
A wywoływałeś sobie:
  1. modules/account/validate.php?login

? Zobacz czy tam nie ma jakiegoś błędu.

Co Ci zwraca w obj.responseText ?
XP'ek
alert(obj.resonseText) prawidlowo zwraca 1 lub 0 ale mimo to if nie czyta prawidlowo

moze masz pomysl aby to inaczej zrobic? jestem na kazda opcje otwarty byle to bylo w ajax
mortus
Zastąp
a = obj.responseText;
tym
a = parseInt(obj.responseText);
Innym rozwiązaniem może być zastąpienie warunków if(a == 1) i if(a == 0) warunkami odpowiednio if(a == '1') i if(a == '0'). Choć polecam to pierwsze.
XP'ek
pronowalem parsowania i tez nic nie daje ;/

podaje ponizej calosc

plik register.php

Kod
<script>
function vLogin()
{
var vlogin = document.getElementById('vlogin');
var login  = document.register.login;


if(login.value.length >= 6)
{
advAJAX.get({
    url: "modules/account/validate.php?login="+login.value,
    onSuccess : function(obj) {var a; a = parseInt(obj.responseText); if(a == 1) {vlogin.innerHTML = "prawda";} else {vlogin.innerHTML = "falsz";}},
    onError : function(obj) {alert("Error: " + obj.status);},
});
}
else
{
v1 = 0;
vlogin.innerHTML = " <img src='img/icons/_00.png'> <font face='Verdana size='1' color='red'>Zbyt krótki login</font>";
}
}
</script>


<form name='register' method='POST' action='' onSubmit='return Validate()'>


Login: <input type='text' name='login' value='' style='width:180px;' maxlength='30' onChange='vLogin()'>
<span id='vlogin'></span>

</form>



validate.php

Kod
if(isset($_GET['login']))
{
$login = $_GET['login'];


$query="SELECT * FROM `user` WHERE `login`='$login'";
$sql=mysql_query($query);

if($rows=mysql_fetch_array($sql))
{
print "0";
}
else
{
print "1";
}
}


nawet gu wartosc jest prawda drukuje falsz
marcint83
A spróbuj jeszcze zobaczyć co siedzi w zmiennej: alert(a)
XP'ek
w alercie siedzi własnie poprawnie 1 oraz 0
marcint83
W konsoli błędów są jakieś błędy? Spróbuj jeszcze uruchomić skrypt w innej przeglądarce...
XP'ek
wiec tak chrome zachowuje sie tak jak moj firefox a ie7 nie czyta js nie sprawdzalem czemu, w konsoli bledow nie ma. A sluchaj jakbym podrzucil ci pliki luknalbys na to jest to dla mnie wazne bylbym wdzieczny jesli to oczywiscie nie jest klopot dla ciebie..
marcint83
A, podeślij smile.gif
XP'ek
oki podrzucilem na priva
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.