• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

aufruf js-routine aus php

FreddyS

Neues Mitglied
guten Morgen zusammen

ich rufe aus einem php-programm eine js-prüfroutine wie folgt auf:
Code:
$fehler=0;
echo '<script type="text/javascript">pruef();</script>';
echo"fehler nach pruef" . $fehler;

In der js-Routine nehme ich verschiedene Prüfungen vor, Fehler werden richtig erkannt und protokolliert
Code:
function pruef()
{
var fehler = "<?echo $fehler;?>";
var pkat = "<?echo $pkat;?>";
var ptitel = "<?echo $ptitel;?>";
var strFehler='';

   if (pkat=="")
    {
    strFehler += "Keine Kategorie ausgewaehlt\n";
    fehler=fehler+1;
    alert(fehler);
    }
  if (ptitel=="")
   {  
   strFehler += "Kein Titel vorgegeben\n";
   fehler=fehler+1;
   alert(fehler);
   }
   if (strFehler.length>0)
   {
    alert("Anzeige unvollstaendig/fehlerhaft: \n\n"+strFehler);
    return(false);
   }
   
}
</script>

Ich habe mir den zähler fehler ausgedruckt, beim 1. Fehler (also nach der 1. Prüfung) steht er auf 1, nach dem 2. Fehler (der 2. Prüfung) auf 11

Warum nicht auf 2, ich erhöhe doch jeweils um 1

Nach Rückkehr aus der Routine will ich den Fehlerzähler in php abfragen, klappt aber nicht (ist hier immer null):
Code:
Warum 

Könnte ich das Ergebnis der Prüfung auch anders abfragen (true/false)
 
Du kannst die PHP variablen nicht mit Javascript ändern.
Das eine ist eine Server- und das andere Clientseitig.
Du hast den Parser der erstellt aus der PHP Seite eine statische HTML Seite.
Heisst erst mal alle PHP teile wären abgearbeitet. Deine Seite sähe nach dem parsen so aus:
HTML:
<script type="text/javascript">pruef();</script>
fehler nach pruef 0
function pruef()
{
var fehler = "0";
var pkat = "Wert von pkat";
var ptitel = "wert von ptitel";
var strFehler='';

   if (pkat=="")
    {
    strFehler += "Keine Kategorie ausgewaehlt\n";
    fehler=fehler+1;
    alert(fehler);
    }
  if (ptitel=="")
   {  
   strFehler += "Kein Titel vorgegeben\n";
   fehler=fehler+1;
   alert(fehler);
   }
   if (strFehler.length>0)
   {
    alert("Anzeige unvollstaendig/fehlerhaft: \n\n"+strFehler);
    return(false);
   }
   
}
</script>

Wenn du die Fehler ins dokument schreiben willst. Zum Beispiel in ein Div. Benutze dafür auch Javascript. Zum Beispiel in ein Div mit der id fehlerausgabe

HTML:
document.getElementById("fehlerausgabe").innerHTML = fehler;

Oder du löst das ganze über PHP :)
Aber so quer zu mixen geht leider nicht.
Hoffe konnte dir helfen
 
Jein, danke für die antworten, aber ganz klar ist es mir nur im prinzip (server, client)

Was bewirkt denn dann dies:
Code:
var fehler = "<?echo $fehler;?>";

Ic dachte, ich übergebe damit an die js-funktion einen feldinhalt aus php

ist dies nicht richtig
 
Danke, jetzt ist alles klar

Noch eine Frage zu dem Fehlerzähler:

Weisst du, warum der zuerst beim erhöhen um 1 richtig die zahl 1 anzeigt, beim 2. erhöhen 11 statt 2
 
Weil er denkt, dass es ein String ist. Du schreibst ja auch oben
Code:
var fehler = ""

Dann denkt er du willst 2 strings addieren.
Und 1 und 1 als String egribt nun mal 11 :D
probier es mal mit
Code:
fehler = parseInt(fehler) + 1;

parseInt wandelt dir den String in eine Zahl um
Du kannst auch einfach die "" oben beim erstmaligen definieren von fehler weglassen :)
 
Zurück
Oben