Dobrý den,
obracím se na toto fórum, protože se mi nedaří najít chybu ve svém kódu.
Toto je jeho úryvek:
<script charset="utf-8" type="text/javascript">
function username(str)
{if (window.XMLHttpRequest) {xmlhttp=new XMLHttpRequest();}
else {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function() {
if ((xmlhttp.readyState==4) && (xmlhttp.status==200))
{document.getElementById("nick_place").innerHTML=xmlhttp.responseText;
var nickplace = document.getElementById("nick_place").innerText;
var text = "tento nick již používá jiný uživatel";
var text2 = "tento nick nemá žádný uživatel"; //čistě pro ukázku
if (nickplace == text)
{document.getElementById("nick_place").style.color="red";}
else {document.getElementById("nick_place").style.color="green";}
}
}
xmlhttp.open("GET","ajax_login.php?login=" + str,true);
xmlhttp.send();
}
</script>
Jde o ajax doplněk k php, mysql a javascriptu. Funkce xmlhttp.responseText mi vrátí text do buňky s id nick_place. Do str parametru se nahrává právě onen nick, který se porovnává s databází. Vše chodí, jak mí, dokud nedojde na podmínku, která má dané oznámení, zda se přezdívka může použít, přebarvit na červenou, nebo zelenou. Porovnávám zde dva shodné texty, což jsem si ověřil přes výpisy, ale podmínka zarputile provádí else možnost. Snad jsem uvedl dostatek informací. Upozorňuji, že ono oznámení je správné, jen je pořád zelené.
Předem děkuji za pomoc,
Harpener
Fórum › JavaScript, AJAX, jQuery
Porovnávání textů
To m->29 :
Teď mám dojem, že jsi mě nepochopil, do parametru str se uloží zadaná přezdívka, potom se pomocí ajaxu v databázi zjistí, jestli není použitá a vrácenou hodnotou je text-oznámení "Tato přezdívka je/není použitá". Mým cílem je ho udělat barevné, ale když se v javascriptu pokouším výsledek tohoto oznámení zjistit podmínkou, tak mi ji nechce vzít.
Mám v html mimo jiné dvě buňky-formuláře : s přezdívkou (odsud parametr str) a s oznámením (ID="nick_place" - sem se ukládá ten výsledek).
skontroluj ci var nickplace skutocne obsahuje nejaky text, lebo sa mi zda ze sa neda vytiahnut takto obsah po pridani cez innerHTML. napr. alert(nickplace);
A nebolo by lepsie keby prisla odpoved rovno zo zafarbenym textom ? <span style="color:red;">odpoved</span>.........
Tak jsem to nakonec opravdu zprovoznil přes výstupní hodnotu
echo "<span style=\"color:red;\">"."tento nick již používá jiný uživatel"."</span>";
v souboru ajax_login.php, už jsem to zkoušel předtím, ale to jsem si hrál s tagem script, protože mám dokumenty převážně v php a ono to jde i bez něj. Takže všem děkuju za rady. Mějte se.
innerText a innerHTML je teoreticky to samé
a ANO porovnáváš proměnnou který si dal hodnotu v kodu ty sám(napevno)
var nickplace = document.getElementById("nick_place").innerText;
var text = "tento nick již používá jiný uživatel";
if (nickplace == text)
{document.getElementById("nick_place").style.color="red";}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Porovnávání — založil Malag
Porovnavani double — založil BigBear
Porovnavani retezcu — založil pazdy
Porovnávání časů — založil tomick
Porovnávání hodnot — založil jula
Moderátoři diskuze