PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : formularantwort in tebellenspalte


josch
14.11.2002, 16:41:53
bastel gerade an einer header.php, die oben rechts zwei formulreingabefelder und einen absenden button besitzt.

dieses formularfeld habe durch include in den heade eingebunden und es steht auc hda wo es seinen sollte. sehr gut soweit.

nun wird im formtag der datei form_header.php ein file aufgerufen welches die datenbankeintragung der formularinhalte vornimmt und einen kurzen bestätigungstext an die stelle im header.php ausgeben soll wo vorher das formular war.

wie krieg ich den bestätigungstext auf den datenbankeintrag in die spalte?

ist es dabei erheblich den header.php in einem frameset aufzurufen?

bitte um hilfe...

Darksaber
14.11.2002, 16:45:59
du könnetst einfach eine abfrage machen, ob das formular gesandt wurde und dann mit echo einen Text ausgeben lassen.

josch
14.11.2002, 16:58:18
klar gibts eine bestätigung per echo include...

das problem ist der header ist weg und der text steht einsam und verlassen im frame :-(

josch
14.11.2002, 19:07:39
also ich rufe im header.php in einer t-spalte auf:

<?php
echo include ("form_header.php");
?>

in form_header.php steht:

<?php

echo ('<form name=form1 method=post action=../maillist.php4><font color=#FFFFFF>Geben Sie hier Ihren Namen und Ihre Emailadresse ein</font><br>
<input name=name type=text value=>
<input name=email type=text value=>
<input type=submit name=Submit value=Abschicken></form>');
?>

soweit ist alles roger, aber dann:

in mailist.php4

<?php
include ("daten.php4");
include ("fdl.php4");

$datum=date("d.m.Y");

$sql = "SELECT * FROM mails WHERE (email = '$email')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0) {
echo include("emailfehler.php4");
} else {
echo include ("emailok.php4");

mysql_query("INSERT INTO flmails (datum,name,email)
values('$datum','$name','$email')");
}

die ausgabe erfolgt leider nicht da wo sie soll, also in der spalte, statt dessen steht der text aus emailok.php4 einsam im header frame.

weiß jemand wie ich den text aus emailok.php4 an die stelle in header.php bringe, wo vorher die formulareingabe war?

Ben20
15.11.2002, 10:31:47
Du mußt nur

<?php
include ("header.inc");
?>

Statt

<?php
echo include("..");
?>

Wenn Du eine Datei mit include einbindest, so ist so als hättest Du den Quelltext der includierten Datei direkt in die einbindende Datei geschrieben. Es würde also so aussehen:

echo echo ("bjklajfd fjkdl");

Und das geht natürlich nicht.

josch
15.11.2002, 16:41:27
dran liegts leider nicht, vielleicht hat noch jemand eine andere idee?

mad-boy
16.11.2002, 15:41:26
Hi,
du leitest ja in dem File auch auf die maillist.php weiter, somit ist klar, dass die erste Datei geschlossen wird und statt dessen die maillist.php geöffnet wird! Ich würde das wenn möglich einfach mit nem iFrame lösen, dass die form_header.php direkt im iFrame geöffnet wird, dann müsste es gehen!

josch
16.11.2002, 18:37:07
iframe hatte ich auch schon im auge, ist aber nicht browserkompatibel und bei einer mächtigen servererweiterung wie php gefühlsmäßig nicht notwendig.

danke für die tipps bisher, aber suche immernoch die lösung für meine problem.

mad-boy
16.11.2002, 19:49:38
Wenn dus mit php machen willst musst du anstelle zu dem maillist.php weiter zu leiten wieder auf die header.php weiterleiten und dabei ne Variable übergeben, die prüfst du dann und includest dementsprechend entweder die maillist.php oder die form_header.php

josch
17.11.2002, 12:58:02
kann ich auch aus dem formtag auf eine stelle in der form_header.php verweisen wo dann das script aus mailist.php steht? und wenn wie?

mad-boy
17.11.2002, 13:47:28
Ne, denn wenn du includest ist das ja als wenn das alles eine Datei wäre, das heißt du musst wieder die Hauptdatei laden und dort dann entscheiden was du includen willst!

Du könntest natürlich immer die form_header.php includen und dann in der form_header.php erst eine Variable checken und dementsprechend handeln, is das selbe wie oben in grün! ;)

josch
17.11.2002, 17:19:30
danke mad-boy, hab es mal probiert und zwar so:

in der mailist.php rufe ich je nach dem welcher fall auftritt die header.php mit einer var 1 oder 2 auf:

if (mysql_num_rows ($result) > 0) {include ("../sites/header.php?var=2");
}
else {include ("..sites/header.php?var=1");


den header.php hab ich wie folgt geändert:

<?php

switch ($var){
case 0: include ("form_header.php");
break;
case 1: include ("ok.php");
break;
case 2: include ("fehler.php");
break;}
?>

problem ist jetzt das im head frame garnix mehr angezeigt wir, nachdem der abschicken button gedrückt wurde.

würd mich freuen wenn mir jemand hilft, das ich bald mal ein erfolgserlebniss habe.

mad-boy
17.11.2002, 17:37:22
Also ich seh da jetzt auf den ersten Blick keinen Fehler, aber ich hätte es anders rum gemacht!
Ich würde den form_header.php mit action=header.php definieren und dann würde ich da noch ein hiddenfield in die form_header mit einbringen! z.B. <input type=hidden name=var value=1> und dann machst du eben in der header.php if($var==1) { include ("maillist.php"); } else { include ("form_header.php"); }
das müsste dann eigendlich gehen!

josch
18.11.2002, 13:21:12
danke für den tip, jetzt klappt es auch einigermaßen. hab zwar noch einige probleme mit der formatierung, aber die werde ich wohl bald lösen können.

nochmal eine frage.
wenn ich das formular über include reinlade, wir meine javascriptüberprüfung auf richtigkeit der angaben einfach übergangen. ist das normal?

mad-boy
18.11.2002, 14:10:34
Das kann ich dir leider auch nicht sagen, mit JavaScript kenn ich mich nicht aus! Aber normalerweise müsste der Include-Befehl einfach dafür sorgen, dass dem Browser das ganze als eine Datei übergeben wird!