jquery Funktion aus php starten
inspiron
- php
Hallo,
ich möchte in meinem Formular ein jquery Notify Plugin integrieren.
Wenn ein Fehler auftritt soll dieses Plugin gestartet werden.
Mit dem Button "Testbutton 1" kann ich die Funktion "notify_error()" starten auch mit "$(document).ready" funktioniert das Plugin.
Wie kann ich das Plugin starten wenn "if($error === true)" ist?
Gruß
<?php header ('Content-Type: text/html; charset=utf-8');
error_reporting(E_ALL ^ E_NOTICE);
//-----------------------------------------------
$fehler = '';
/* Fehlerauswertung */
$errorFelder = array();
$error = null;
$felder = array("beschreibung");
// hier startet die Überpruefung der Eingabe im Formular
if(isset($_POST['ueberpruefung'])) {
$error = false;
foreach($felder as $feld) {
if("" ==($_POST[$feld]) or "*" ==($_POST[$feld]) or "Bitte auswählen!-" ==($_POST[$feld])) {
$error = true;
$errorFelder[$feld] = true;
}
}
}if($error === false) {
// alles i.O.! Weiter auf neue Seite umleiten
header ("Location: ../menue_1/index.php");
} else {
if($error === true)
$err = 'Es sind Fehler aufgetreten: '.$errors;
$meldung = "<b>Bitte die Rot markierten Felder ausfüllen!</b>";
//$meldung = "<script type=\"text/javascript\">notify_error();</script>";
} // <!-- Ende Fehlerüberprüfung -->
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>om Select Schicht</title>
<link rel="stylesheet" title="Default" href="../css/notify.css" type="text/css" />
<script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>
<script type="text/javascript">
//----------------------- Notify -----------------------------
function notify_error() {
$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
};
$(document).ready(function(){
//$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
});
//------------------------------------------------------------
</script>
</head>
<body_noty>
<?php
// Fehler ausgeben
if(!empty($err)) echo $meldung;
?>
<form class="commentForm" method="post" accept-charset="utf-8" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>">
<fieldset>
<!-- Element 1 -->
<div>
<textarea name="beschreibung" id="beschreibung" disabled='disabled'<?php if(isset($errorFelder['beschreibung'])) echo 'class="error"'; ?>><?php echo ($_POST['beschreibung']);?></textarea>
</div>
<div id="speichern">
<!-- UI Button -->
<input type="hidden" name="ueberpruefung" value="1">
<input type="submit" id="submitButton" name="submitButton" value="Weiter" />
</div>
</fieldset>
</form>
<button onclick="notify_error()">Testbutton 1</button>
<script type="text/javascript" src="../jquery/notify.js"></script>
</body>
</html>
<script type="text/javascript">
//----------------------- Notify -----------------------------
function notify_error() {
$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
};$(document).ready(function(){
//$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
});//------------------------------------------------------------
</script>
</head><body_noty>
body\_noty-Element? Kenn ich nicht, sieht mir nach invalidem HTML aus (reine Spekulation), aber im Moment nebensächlich.
> Wie kann ich das Plugin starten wenn "if($error === true)" ist?
In dem du den JavaScript-Text auch mit PHP generiest. Sprich, wenn Fehler vorhanden sind, gibt PHP besagten Funktionsaufruf an entsprechender Stelle aus.
MfG
bubble
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
body_noty-Element? Kenn ich nicht, sieht mir nach invalidem HTML aus (reine Spekulation), aber im Moment nebensächlich.
Das war mal ein <body id="body_noty">! Hatte ich vergessen zu entfernen.
Wie kann ich das Plugin starten wenn "if($error === true)" ist?
In dem du den JavaScript-Text auch mit PHP generiest. Sprich, wenn Fehler vorhanden sind, gibt PHP besagten Funktionsaufruf an entsprechender Stelle aus.
...meinst du das so?
Das hatte ich auch schon probiert, geht auch nicht.
if($error === true)
echo "<script type=\"text/javascript\">$(document).ready(function(){ $.notify.alert();});</script>";
...meinst du das so?
Das hatte ich auch schon probiert, geht auch nicht.
if($error === true)
echo "<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>";
Ja, das meinte ich, bin mir grad nicht sicher ob die $ maskiert werden müssen, ich denke mal, dass ist der Fall.
Was kommt denn als HTML am Ende raus bei der Zeile?
Was sagt die Fehlerkonsole deines Browsers?
MfG
bubble
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
Ja, das meinte ich, bin mir grad nicht sicher ob die $ maskiert werden müssen, ich denke mal, dass ist der Fall.
* ..., ich denke mal das ist der Fall.
Meine Rechtschreibung will heute irgendwie nicht =/
MfG
bubble
Ja, das meinte ich, bin mir grad nicht sicher ob die $ maskiert werden müssen, ich denke mal, dass ist der Fall.
* ..., ich denke mal das ist der Fall.
Meine Rechtschreibung will heute irgendwie nicht =/MfG
bubble
Fehlerkonsole:
index_2.php:2ReferenceError: Can't find variable: $
diese Zeile wurde rot markiert:
<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>
Fehlerkonsole:
index_2.php:2ReferenceError: Can't find variable: $
Also ist jQuery zu dem Zeitpunkt noch nicht bekannt.
Steht
diese Zeile wurde rot markiert:
<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>
vor oder nach <script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>
?
Vermutlich davor.
MfG
bubble
Fehlerkonsole:
index_2.php:2ReferenceError: Can't find variable: $Also ist jQuery zu dem Zeitpunkt noch nicht bekannt.
Stehtdiese Zeile wurde rot markiert:
<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>vor oder nach
<script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>
?
Vermutlich davor.MfG
bubble
<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>om Select Schicht</title>
<link rel="stylesheet" title="Default" href="../css/notify.css" type="text/css" />
<script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>
<script type="text/javascript">
//----------------------- Notify -----------------------------
function notify_error() {
$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
};
$(document).ready(function(){
//$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
});
//------------------------------------------------------------
</script>
</head>
<body_noty>
<form class="commentForm" method="post" accept-charset="utf-8" action="/~onkelmario/om/menue_0/index_2.php">
<fieldset>
<!-- Element 1 -->
<div>
<textarea name="beschreibung" id="beschreibung" disabled='disabled'class="error"></textarea>
</div>
<div id="speichern">
<!-- UI Button -->
<input type="hidden" name="ueberpruefung" value="1">
<input type="submit" id="submitButton" name="submitButton" value="Weiter" />
</div>
</fieldset>
</form>
<button onclick="notify_error()">Testbutton 1</button>
<script type="text/javascript" src="../jquery/notify.js"></script>
</body>
</html>
<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
[...]<script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>
Invalid.
> > Steht
> > > diese Zeile wurde rot markiert:
> > > <script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>
> >
> > vor oder nach `<script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>`{:.language-html} ?
> > Vermutlich davor.
Ich dachte, diese Frage und Vermutung lässt darauf schließen, dass `<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>`{:.language-javascript} NACH `<script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>`{:.language-html} stehen muss.
~~~html
<script type="text/javascript">
//----------------------- Notify -----------------------------
function notify_error() {
$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
};
$(document).ready(function(){
//$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
/* HIIIIIIERRR */
});
//------------------------------------------------------------
</script>
Dort wäre z.B. ein geeigneter Platz. Zudem sparst du dir auch noch ein ganzes Element und einen Funktionsaufruf.
MfG
bubble
<script type="text/javascript">
//----------------------- Notify -----------------------------
function notify_error() {
$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
};$(document).ready(function(){
//$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
/* HIIIIIIERRR */
});
//------------------------------------------------------------</script>
>
> Dort wäre z.B. ein geeigneter Platz. Zudem sparst du dir auch noch ein ganzes Element und einen Funktionsaufruf.
>
> MfG
> bubble
nun verstehe ich gar nichts mehr.
Wenn ich es dort platzieren würde (zum Test stand es ja schon drin) wird es ja immer aufgerufen wenn sich die Seite aufgebaut hat.
Drum wollte ich es ja über einen Funktionsaufruf "function notify\_error()" versuchen.
~~~php
if($error === true)
echo "<script type=\"text/javascript\">notify_error();</script>";
<script type="text/javascript">
function notify_error() {
> $.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
> };
</script>
nun verstehe ich gar nichts mehr.
Wenn ich es dort platzieren würde (zum Test stand es ja schon drin) wird es ja immer aufgerufen wenn sich die Seite aufgebaut hat.
<script type="text/javascript">
//----------------------- Notify -----------------------------
function notify_error() {
$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
};
$(document).ready(function(){
//$.notify.alert('Bitte eine Schicht auswählen!', { occupySpace : true, autoClose : 3000 });
<?php
if($error === true){
echo "notify_error();";
}
?>
});
//------------------------------------------------------------
</script>
Wenn kein Fehler vorhanden ist, wird "notify_error();" nicht ausgegeben, also steht es auch nicht im Quelltext, den der Browser interpretiert, also wird auch der Javascript-Interpreter notify_error nicht ausführen.
Wenn dein PHP-Script nun aber einen Fehler ermittelt, wird "notify_error();" ausgegeben, steht somit im Quelltext, den der Browser interpretiert und somit wird der Javascript-Interpreter notify_error ausführen.
Und da <script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>
oberhalb von diesem script-Element steht, ist jQuery (also $ ) auch bekannt.
MfG
bubble
Und da
<script type="text/javascript" src="../jquery/jquery-1.9.1.js"></script>
oberhalb von diesem script-Element steht, ist jQuery (also $ ) auch bekannt.MfG
bubble
Dankeschön, jetzt geht's, freu!
Gruß
Ja, das meinte ich, bin mir grad nicht sicher ob die $ maskiert werden müssen, ich denke mal, dass ist der Fall.
* ..., ich denke mal das ist der Fall.
Meine Rechtschreibung will heute irgendwie nicht =/MfG
bubbleFehlerkonsole:
index_2.php:2ReferenceError: Can't find variable: $diese Zeile wurde rot markiert:
<script type="text/javascript">$(document).ready(function(){ $.notify.alert();});</script>
das geht auch nicht
echo "<script type=\"text/javascript\">\$(document).ready(function(){ \$.notify.alert();});</script>";
echo "<script type=\"text/javascript\">\$(document).ready(function(){ \$.notify.alert();});</script>";
Nebenbei solch wirre Maskierungen kann man vermeiden, wenn man einfache Anführungszeichen (also ' ) verwendet. Da werden keine Variablen ausgelesen und man spart sich auch die " zu maskieren.
MfG
bubble