[JS] responseText gebruiken voor if statement

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Allereerst moet ik zegen dat ik Javascript met AJAX nog niet zo lang ken en momenteel bezig ben om dit te leren. Ik lees er verschilde sites op na en heb een aantal boeken. Nu ben ik een beetje aan het hobbyen om een site voor een schoolproject te maken. Het gaat hier om een simpel inschrijfformulier dat via ajax ingevoerde data direct controleert. Voor de meeste penuts dus.

In invoerveld word naar een php pagina gestuurd waar het gecontroleerd word. Is het goed dan geeft de php pagina een echo `v` ; en is het fout dat geeft hij echo 'x'.
Dit gaat prima, en als ik deze vervolgens via een innerhtml naar de site stuur dan verschijnt dit ook netjes in de toegewezen div.

Maar nu:
Ik ben al weken aan het knutselen om de echo vanuit de php pagina in een if statement te krijgen. Hiermee wil ik vervolgens de omleiding van het inputveld mee aansturen zodat hij een foute invoer iets netter aangeeft.
Maar wat ik ook doe, waar ik ook zoek. ik krijg dit niet aan de praat.

Ik heb de volgende functie die innerHTML aanstuur:
[code=js,javascript]function handleHttpResponse() {
if (http.readyState == 4)
{sResults = http.responseText.split(",");
document.getElementById(gShow).innerHTML = "";
document.getElementById(gShow).appendChild(document.createTextNode(sResults[0])); }
}[/code=js,javascript]

de php code die antwoord geeft of een invoer goed danwel fout is:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function validateRequired($required,$val,$typecheck)
{
if ($required == "required")
{
if ($val == "") 
{
 $fout = 'x';
echo $fout;
exit();         }
if ($val !== "" && $typecheck == "none")
        {
$goed = 'v';
echo $goed;
        }
    }
}


Eigenlijk is mijn vraag dus, hoe zorg ik ervoor dat ik in de javascript een [code=js,javascript]
if (sResults == 'v'){ de code}[/code=js,javascript] kan gebruiken? want nu werkt dit dus in geen mogelijkheid. Nogmaals ik ben een groentje maar hang echt al lang op dit punt..

Acties:
  • 0 Henk 'm!

  • NiteSpeed
  • Registratie: Juli 2003
  • Laatst online: 21-07 18:35
Moet je niet een return gebruiken in plaats van echo? Dan kan je de return in een variabele stoppen en die variabele gebruiken in je IF statement

[ Voor 46% gewijzigd door NiteSpeed op 22-12-2010 13:22 ]


Acties:
  • 0 Henk 'm!

  • supergert
  • Registratie: December 2001
  • Niet online
Post eerst eens welke code je NU gebruikt om te testen.
Want in je javascript doe je
JavaScript:
1
http.responseText.split(",");

terwijl je alleen een v of x echoot in php. Dus geen , te bekennen (als je daar iets mee wilt doen althans).

Verder zou zoiets als
JavaScript:
1
if (http.responseText == "v") { ... }

moeten werken.

[ Voor 6% gewijzigd door supergert op 22-12-2010 13:26 ]

ZX81 > C64 > Amiga > BeBox > PowerMac > pc-klonen...


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@supergeert, met jou tip ben ik verder gegaan. Ik gebruik nog nog gewoon een inner html om te tenten.

[code=javascript]
function handleHttpResponse() {
if (http.readyState == 4){
if (http.responseText == "v"){
document.getElementById(gShow).innerHTML = 'hij geeft v';}

if (http.responseText == "x"){
document.getElementById(gShow).innerHTML = 'hij geeft x';}

else {document.getElementById(gShow).innerHTML = 'hij geeft nogsteeds een fout'; }
} }
[/code=javascript]
Hij komt nu dus iedere keer uit bij een else

@nitespeed
dat word dan gewoon
PHP:
1
return ($goed);
en moet ikdie dan opvangen?

Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Ik denk dat je eerst es moet kijken wat je PHP bestand uitpoept want gezien de programmeerqualiteit lijkt me daar mogelijks het caveat te zitten... Wat zie je als je naar de AJAX url surft?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jah dat kan het natuurlijk ook zijn.. ik ben hier dus nog een groentje in. mischien weet ik daarom ook niet wat je bedoeld met "surfen naar de AJAX url" :S

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
De ajax url (lees: de url die je aanroept in je XMLHTTP request) gewoon openen in je browser :?

Neem anders een tool als firebug, fiddler of voor mijn part wireshark erbij en kijk dan eens wat de response is.

[ Voor 8% gewijzigd door RobIII op 22-12-2010 16:25 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • moozzuzz
  • Registratie: Januari 2005
  • Niet online
Mmmm, misschien toch maar je boeken es doornemen dan ;-) (AJAX vereist dat je beide delen van het proces onder controle hebt en debugt als't niet werkt)

Met de url bedoel ik welke url opgevraagd wordt door je applicatie/website. Gezien surfen naar http://domein.ext/mijnajaxphpscript.php?foo=bar hetzelfde is als je applicatie/website deze url te laten opvragen kan je dan in je browser zien wat het phpscript uitpoept. Mogelijks is dat niet wat je verwacht (vb: niets of een spatie teveel of een encoding-hickup of of of).

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function validateRequired($required,$val,$typecheck)
{
   if ($required == "required")
   {
      if ($val == "") 
      {
         $return ='x';
      }
      if ($val !== "" && $typecheck == "none")
      {
         $return = 'v';
      }
   }
   return $return;
}

// ergens in het script dat de urlparameters
echo validateRequired(, , )
Het nut van deze validation is niet zo duidelijk maar ik ga er van uit dat dit maar een minideel van je script is 8)
Pagina: 1