nur inkludieren, wenn checkbox aktiv
jenslm
- php
Der Betreff sagt ja eigentlich schon alles.
Ich braeuchte eine Funktion die etwa so funktionieren koennte:
if (checkbox = aktiv)
{
include (../date.php);
}
wie koennte ich sowas realisieren?
lg, jens
Hello,
Der Betreff sagt ja eigentlich schon alles.
Ich braeuchte eine Funktion die etwa so funktionieren koennte:if (checkbox = aktiv)
{
include (../date.php);
}wie koennte ich sowas realisieren?
Prinzipiell genau so :-)
Wie heißt Die Checkbox? Ich nenne sie jetzt einfach mal ctrl[date]
Bei welcher Methode soll der Request ausgewertet werden? Ich vermute mal POST.
if (isset($_POST['ctrl']['date'] and $_POST['ctrl']['date'] == 'aktiv')
{
include($_SERVER['DOCUMENT_ROOT') . '/../includes/date.php');
}
Wobei die DOCUMENT_ROOT hier ohne abschließenden Slash angelegt wäre...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
ok genau das hab ich gesucht danke,
aber folgendes:
das ganze muesste onchange funktionieren, also so, dass die Seite nicht neu aufgebaut wird!!
ist das moeglich?
Hello,
ok genau das hab ich gesucht danke,
Scheinbar ja doch nicht...
aber folgendes:
das ganze muesste onchange funktionieren, also so, dass die Seite nicht neu aufgebaut wird!!
ist das moeglich?
Klar ist das möglich, wenn sich die Frage nur auf den Client bezieht und nicht auf PHP am Server. Du müsstest dann am Client (bevorzugt) mittels JavaScript die Elemente ausblenden, die Du nicht sehen willst und Dir das z.B. einen Hidden-Parameter merken (hier wird vermutlich die Checkbox selber reichen), der beim nächsten Request mitgeschickt wird, damit der Server dies auch mitbekommt.
Der Themenbereich ist dann aber "Javascript"
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
nur werden formular elemente (textfelder) die sich im ausgeblendeten bereich befinden weiterhin überprüft, obwohl das eigentlich jetzt gar nicht mehr sein sollte. deshalb habe ich gedacht wäre es schlauer das mit php zu lösen
nur werden formular elemente (textfelder) die sich im ausgeblendeten bereich befinden weiterhin überprüft, obwohl das eigentlich jetzt gar nicht mehr sein sollte. deshalb habe ich gedacht wäre es schlauer das mit php zu lösen
»»
Also wenn es nur um das Prüfen von Formulareingaben geht dann wäre es auf jeden Fall der falsche Weg sowas mit PHP und Ajax(Das würdest du nämlich dafür auch brauchen) zu lösen, auser es sind vergleiche mit einer Datenbank oder sonstiges zu tätigen. Bleib in dem Fall bei Javascript. Du kannst die Überprüfung der unsichtbaren Felder ja auch von der checkbox abhängig machen.
aber man koennte es so loesen:
ist der Bereich ausgeblendet (wie standardmaeßig) so ist in den ausgeblendeten Feldern bereits ein Wert gesetzt (z.b. 0) und wird beim absenden uebernommen.
wird der Bereich mittels Javascript eingeblendet, so werden die Werte der Textfelder geloescht, sodass diese "leer" sind.
Mein Problem ich hab keine Ahnung wie ich das mit Javascript loesen koennte.
Kann mir jemand einn Ansatz posten?
lg, jens
ist der Bereich ausgeblendet (wie standardmaeßig) so ist in den ausgeblendeten Feldern bereits ein Wert gesetzt (z.b. 0) und wird beim absenden uebernommen.
wird der Bereich mittels Javascript eingeblendet, so werden die Werte der Textfelder geloescht, sodass diese "leer" sind.
Mein Problem ich hab keine Ahnung wie ich das mit Javascript loesen koennte.
Kann mir jemand einn Ansatz posten?
lg, jens
Das könntest du wiederrum bei deiner Auswertung in PHP lösen. Las die Felder einfach leer. Nehmen wir an du nennst das Feld "termin", dann würde das in PHP so aussehen:
$termin=$_REQUEST[termin];
if($termin ==""){
$termin=0;
}
Hello,
nur werden formular elemente (textfelder) die sich im ausgeblendeten bereich befinden weiterhin überprüft, obwohl das eigentlich jetzt gar nicht mehr sein sollte. deshalb habe ich gedacht wäre es schlauer das mit php zu lösen
Wovon werden sie weiterhin überprüft?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
das ganze muesste onchange funktionieren, also so, dass die Seite nicht neu aufgebaut wird!!
Kann es sein das du gerade JavaScript und PHP ein wenig verwechselst?
Beschreib mal genauer was du vorhast..
hi,
Wobei die DOCUMENT_ROOT hier ohne abschließenden Slash angelegt wäre...
Ist diese Variable doch immer, nicht nur *hier* (und auch nicht gestern).
Viele Grüße,
Hotti
Hello,
Wobei die DOCUMENT_ROOT hier ohne abschließenden Slash angelegt wäre...
Ist diese Variable doch immer, nicht nur *hier* (und auch nicht gestern).
Wie kommst Du darauf?
Nach POSIX müsste sie sogar mit einem abschließenden Slash dargestellt werden, da sie ein Verzeichnis symbolisiert. Manche Serverhoster richten sie daher auch so ein.
Es wäre daher sinnvoll, in die eigene Funktionssammlun eine entsprechende Funktion aufzunehmen, die diesen Verzeichnisstring immer einheitlich (vorzugsweise MIT abschließendem Slash) liefert.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
Wobei die DOCUMENT_ROOT hier ohne abschließenden Slash angelegt wäre...
Ist diese Variable doch immer, nicht nur *hier* (und auch nicht gestern).
Wie kommst Du darauf?
Nach POSIX müsste sie sogar mit einem abschließenden Slash dargestellt werden, da sie ein Verzeichnis symbolisiert. Manche Serverhoster richten sie daher auch so ein.
Und wieder eine Quelle von Missverständnissen.
Hotti
Hallo Jens,
if (checkbox = aktiv)
{ include (../date.php); }
1. dclp-FAQ: Wie kann man Checkboxen verarbeiten?
2. Zum Vergleichen braucht es zwei Gleichzeichen, siehe
PHP-Manual: Vergleichs-Operatoren.
(Mit nur einem Gleichzeichen weist Du der Variable links davon
den Wert rechts davon zu.)
Also etwa so:
HTML:
<input type="checkbox" name="datum" value="1"> Datum einbinden
PHP:
if ($_POST['datum']=="1")
{ include (../date.php); }
oder, korrekter (da zuerst geprüft wird, ob die
Variable $_POST['datum'] überhaupt existiert:
if ( (isset($_POST['datum'])) AND ($_POST['datum']=="1"))
{ include (../date.php); }
mfg Thomas
Hallo,
du kennst $_GET und $_POST?
<input name="myCheck" type="checkbox">
if ($_GET["myCheck"]){
include (../date.php);
}
var_dump($_GET) hilft in der Testphase.
<form method="get" action="">
Gruß
jobo
Der Betreff sagt ja eigentlich schon alles.
Ich braeuchte eine Funktion die etwa so funktionieren koennte:if (checkbox = aktiv)
{
include (../date.php);
}wie koennte ich sowas realisieren?
lg, jens
Hast du ja fast schon.
Hier deine checkbox
<input type="checkbox" name="deinName" value="wert">
Und dann die PHP seite..
if ($_REQUEST[deinName] == 'wert')
{
include('../date.php');
}
PS. Strings in Anführungsstriche zu setzen schadet nie.
Hallo,
PS. Strings in Anführungsstriche zu setzen schadet nie.
if ($_REQUEST[deinName] == 'wert')
eben $_REQUEST["deinName"] ...
Gruß
jobo
Ist mir nach dem abschicken auch aufgefallen... Tja ja, immer diese Schlamperei ;-)
Hi!
Ist mir nach dem abschicken auch aufgefallen... Tja ja, immer diese Schlamperei ;-)
Übrigens, deine Codebeispiele zeigen noch eine Menge Schlampereien (du hast das so genannt) mehr. Stell in deinen Scripten (oder zumindest in den Beispielen) mal das error_reporting auf E_ALL (und display_errors sollte on sein), dann bekommst du von PHP ein paar Notice-Meldungen, die ein paar der Schlampereien ahnden. Das Umkopieren von $_GET/$_POST/$_REQUEST in eine weitere Variable und das Verwenden von $_REQUEST statt der gezielteren $_GET und $_POST sind ebenfalls "Dinge, die man nicht macht".
Lo!
Hi!
Ist mir nach dem abschicken auch aufgefallen... Tja ja, immer diese Schlamperei ;-)
Übrigens, deine Codebeispiele zeigen noch eine Menge Schlampereien (du hast das so genannt) mehr. Stell in deinen Scripten (oder zumindest in den Beispielen) mal das error_reporting auf E_ALL (und display_errors sollte on sein), dann bekommst du von PHP ein paar Notice-Meldungen, die ein paar der Schlampereien ahnden. Das Umkopieren von $_GET/$_POST/$_REQUEST in eine weitere Variable und das Verwenden von $_REQUEST statt der gezielteren $_GET und $_POST sind ebenfalls "Dinge, die man nicht macht".
Ich habe bis vor 2 Jahren überhaupt nichts programmiert und mir das nach und nach selber Angeeigenet. Von da her ist es wohl nicht erstaunlich das mein Code den Ansprüchen eines Programmierers nicht genügen.
Hätte ich für mich selber programmiert hätte ich die Variable überschrieben..war mir aber nicht sicher ob das "guter Still" ist. Anscheinend wäre es solcher gewesen. Hat eigentlich irgendwer dem Fragesteller erklärt was Post und Get ist? Ich habe nicht das gefühl das er schon lange mit php zu tun hat. Mit einer wahrscheinlichkeit von 50% hätte er sich dann gefragt warum es nicht funktioniert, weil er mit post verschickt hat und $_GET ausliest.
Trotzdem Danke für die Hinweise, obwohl man das auch etwas freundlicher hätte ausdrücken können.
Wenn du einfach meinen Code verbessern würdest wäre das bei weitem Konstruktiver. Error reporting kann ich aus dem Script heraus bei meinem Provider schon mal gar nicht einstellen sondern nur im Kontrollcenter. Soll es auch geben.
Hi,
Hat eigentlich irgendwer dem Fragesteller erklärt was Post und Get ist?
Wenn er das nicht weiss, soll er sich informieren.
Error reporting kann ich aus dem Script heraus bei meinem Provider schon mal gar nicht einstellen sondern nur im Kontrollcenter. Soll es auch geben.
Lokale Entwicklungsumgebungen soll es auch geben.
MfG ChrisB
Hi!
Ich habe bis vor 2 Jahren überhaupt nichts programmiert und mir das nach und nach selber Angeeigenet. Von da her ist es wohl nicht erstaunlich das mein Code den Ansprüchen eines Programmierers nicht genügen.
Da kannst du mal sehen, auch ich bin Autodidakt und habe eine Menge "Jugendsünden" auf dem Kerbholz und auch alles andere als fehlerfrei. Ein Weg in Richtung "Perfektion" (obwohl ich sie sicher nicht erreichen aber zumindest anzustreben versuche) ist Selbsterkenntnis, ein anderer dass man auf Fehler hingewiesen wird. Ich seh das nicht als Makel sondern als Chance.
Hätte ich für mich selber programmiert hätte ich die Variable überschrieben..war mir aber nicht sicher ob das "guter Still" ist. Anscheinend wäre es solcher gewesen.
Nein, bestimmt nicht. Solange Eingabewerte direkt verwendet werden können, sollte man das tun und nicht durch weitere Variablen das ganze Geschehen noch komplexer machen. Eine Variable mehrfach zu verwenden - besonders wenn sich ihr Zweck ändert - ist aber auch nicht grad der Übersichtlichkeit dienlich.
Im konkreten Fall sehe ich es aber nciht als nachteilig oder als No-Go, einen Eingabewert direkt zu korrigieren, solange nicht noch was anderes mit dem nicht gewünschten Wert geplant ist (zum Beispiel ihn dem Anwender zu<del>m Fraß</del><ins>r Korrektur</ins> wieder vorzulegen).
Hat eigentlich irgendwer dem Fragesteller erklärt was Post und Get ist? Ich habe nicht das gefühl das er schon lange mit php zu tun hat. Mit einer wahrscheinlichkeit von 50% hätte er sich dann gefragt warum es nicht funktioniert, weil er mit post verschickt hat und $_GET ausliest.
Jetzt lenk nicht vom Thema ab (<- klingt grad unfreundlicher als es geplant ist). Wenn er das nicht weiß, kann er das nachfragen. Zum einen dürfte das in jedem Anfängertutorial erklärt werden, zum anderen kann man nicht auf sämtliche eventuelle Wissenslücken eingehen.
Trotzdem Danke für die Hinweise, obwohl man das auch etwas freundlicher hätte ausdrücken können.
Der eine mag es leiber schnörkellos direkt, der andere mit Honig ums Maul. Letzteres ist nun mal bei mir nicht zu bekommen.
Wenn du einfach meinen Code verbessern würdest wäre das bei weitem Konstruktiver.
Ja, aber wenn man es schon so oft und ausführlich dem Archiv erzählt hat, ist man manchmal etwas maulfauler.
Error reporting kann ich aus dem Script heraus bei meinem Provider schon mal gar nicht einstellen sondern nur im Kontrollcenter. Soll es auch geben.
In der Produktivumgebung sollte man auch keine Fehlermeldungen in Richtung Besucher rausgeben. Die können entweder gar nichts oder mehr als einem lieb ist damit anfangen. Scripte im heimischen Editor zu schreiben, hochzuladen und dort zu testen, ist zwar ein Weg, aber nicht unbedingt der schnellste. Sie in einer "Laborumgebung" zu entwickeln ist meines Erachtens nach der günstigere. Es kann dann zwar zu Unstimmigkeiten mit der beim Hoster vorhandenen Umgebung kommen, aber die kann man durch einen Vergleich der phpinfo()-Ausgaben beider Systeme schon im Vorfeld ausfindig machen.
Lo!