Php textfeld?

Liebe/-r wer-weiss-was Experte/-in,
ich habe auf arbeit ein kleines problem.
Ich soll ein kleines projekt machen mit php leider habe ich nicht so viel ahnung von der materie.

mein problem: Es handelt sich um ein fomular.

am anfan ist name adresse usw mit text feldern

weiter unten sind dan weitere textfelder die aber erst aktieviert werden sollen wenn die ersten textfelder (name und adresse) erfolgreich ausgefüllt sind.

können sie mir hier weiter helfen?

mfg Alpha63

Hallo,

ich kann Dir natürlich helfen, aber ich sehe an Deiner Anfrage, dass es bei Dir schon an den Grundlagen happert.

Ich würde Dir empfehlen sich etwas mehr mit HTML und PHP zu beschäftigen und ein paar Tutorials durch zu spielen.

Dafür gibt es gute Seiten wie tutorials.de oder php-faq.de. Die Seiten selfhtml.de und php.net sind als Grundlage und Dokumentation dafür essentiell.

Zu deinem Problem:

Du erstellst ein Formular mit HTML, dort sind Eingabeelemente enthalten, so genannte Inputfelder.
Diese Daten sendest Du an den Server mit einer bestimmten Adresse zu einem PHP Skript. Dieses Skript sollte dann diese Daten entgegen nehmen und auswerten.

Auf der HTML Seite benötigst du, um Elemente dynamisch aus- und einzublenden, die Skriptsprache JavaScript.
Noch eine Sache mit der man sich beschäftigen muss, wenn man Webseiten entwickelt.

In JavaScript kannst über das „DOM“ Elemente und deren Eigenschaften manipulieren.
Dafür gibt es mehrere Möglichkeiten, eine davon:

Z.B. kannst Du jedem Element eine ID vergeben über diese Du dann auf das Element zugreifen kannst.
Dies geschieht über die Methode getElementsByID, die eine Untermethode des globalen Documents ist.
Aufgerufen wird dies unter document.getElementsByID(„ID“) - Die ID in Klammern beinhaltet die ID für das Element.
Um Elemente ein/auszublenden benötigt man die Eigenschaft style und dann davon die Eigenschaft display.
Mit document.getElementsByID(„ID“).style.display = „none“ kann man ein Element ausblenden und mit document.getElementsByID(„ID“).style.display = „“ wieder einblenden.

Auf selfhtml.de oder w3schools.com gibt es dazu mehr.

Ich hoffe, dass Dir das erst einmal für den Anfang reicht und wenn Du Dich damit mehr beschäftigt hast, wird es auch verständlicher.

Für weitere Fragen bin ich natürlich weiter offen.

Beste Grüße

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Alpha63,

ich hoffe dass ich alles richtig verstanden habe.
Das Problem lässt sich mit Javascript lösen.

Es wird eine javascript-Funktion benötigt, die überprüft, ob in den ersten Feldern etwas eingetragen wurde:

function checkFields()
{
if( document.getElementById(‚feldname1‘).value != ‚‘ && document.getElementById(‚feldname2‘).value != ‚‘ ){
document.getElementById(‚felddaserscheinensoll1‘).type = ‚text‘;}
}

Dann müssen die verwendeten Felder natürlich Ids bekommen und onChange die Javascript-Funktion aufrufen:

Die Felder die nicht sichtbar sein sollen müssen das folgende Style-Attribut bekommen:

Das ist zugegeben nur auf die schnelle gemacht, sollte aber einen Ansatz bieten. Wenn noch Fragen da sind melden sie sich doch.

Liebe Grüße

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich möchte das das deaktivierte fenster aktiev wird.

man soll es sehen aber kann noch nichts reinschreiben.

danke für die schnelle hilfe.

p.s.: können sie mir einen fertigen quelltext schicken. ich würde mich dan versuchen selber hinein zu fitzen

Ja, ich hätte da einen Vorschlag. Ist eine Mischung zwischen Klassen und Sessions. Der Inhalt des Formulars wird individuell hergestellt. Den kann man ganz einfach erweitern oder abändern.

Versuch dich mal ein bischen daran. Sollte es noch Probleme oder sonstwas geben, einfach Fragen : )

<?php session_start();
if(!$\_SESSION["seite"]){ $\_SESSION["seite"] = ""; } ?\> <?php $formfield = new form;
if(isset($\_POST["submit1"])){ $\_SESSION["vorname"] = $\_POST["vorname"]; $\_SESSION["nachname"] = $\_POST["nachname"]; $\_SESSION["strasse"] = $\_POST["strasse"]; $\_SESSION["hausnr"] = $\_POST["hausnr"]; $\_SESSION["plz"] = $\_POST["plz"]; $\_SESSION["ort"] = $\_POST["ort"]; $\_SESSION["seite"] = 1; }elseif(isset($\_POST["submit2"])){ $\_SESSION["vorname2"] = $\_POST["vorname"]; $\_SESSION["nachname2"] = $\_POST["nachname"]; $\_SESSION["strasse2"] = $\_POST["strasse"]; $\_SESSION["hausnr2"] = $\_POST["hausnr"]; $\_SESSION["plz2"] = $\_POST["plz"]; $\_SESSION["ort2"] = $\_POST["ort"]; $\_SESSION["seite"] = 2; }elseif(isset($\_POST["destroy"])){ session\_destroy(); } switch($\_SESSION["seite"]){ case '': echo form::formfield1(); break; case '1': echo form::formfield2(); break; } ?\> <?php class form{
function formfield1(){ return '|Vorname Nachname (zur Kontrolle dies ist das erste Feld) Strasse Hausnr PLZ Ort '; } function formfield2(){ return 'Vorname Nachname (zur Kontrolle dies ist das 2te Feld) Strasse Hausnr PLZ Ort '; } } ?\> <?php echo "Hier die Ausgabe der Session:
"; print\_r($\_SESSION); ?\>

Hier bitte:

function checkFields()
{
if( document.getElementById(‚lastname‘).value.length > 3 && document.getElementById(‚firstname‘).value.length > 3 )
{
document.getElementById(‚telefon‘).disabled = false;
document.getElementById(‚comment‘).disabled = false;
}
}

Name:

Vorname:

Telefon:

Kommentar:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi,

wenn ich dich richtig verstehe, dann soll die „aktivierung“ (was meinst du genau damit) erfolgen, wenn das formular noch nicht abgeschickt wurde.
in diesem fall mußt du das problem mit javascript lösen, denn php arbeitet nur serverseitig.

cu
harald

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

function checkFields()
{
if( document.getElementById(‚lastname‘).value.length > 3 &&
document.getElementById(‚firstname‘).value.length > 3 )
{
document.getElementById(‚telefon‘).disabled = false;
document.getElementById(‚comment‘).disabled = false;
}
}

Name:

Vorname:

Telefon:

Kommentar:

erstmal danke das ist genau das was ich meinte.

Es ist die 2 Frage, kann man die deaktievierten Felder Farblich so anzeigen das man sieht das man noch nichts reinschreiben kann?

Hi alpha63,

schau mal bitte hier, das könnte weiterhelfen:
http://www.phpforum.de/forum/showthread.php?t=191447

ciao
captnsharky

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]