[Gelöst] Checkbox wird super in die DB geschrieben aber nicht übergeben an die 2te Seite

atsWien

fühlt sich hier wohl
Hallo nochmal an alle!!!

nachdem ich jetzt schon xmal gegoogelt habe muss ich wieder einmal hier nachfragen.
Mein Problem:
Ich habe ein Formular in dem einige Checkboxen sind, diese werden auch richtig an die DB weitergegeben.
Das Mache ich wie Folgt
PHP:
$f_priv = (!isset($_POST['f_priv'])) ? '' : $_POST['f_priv'];
$f_firma = (!isset($_POST['f_firma'])) ? '' : $_POST['f_firma'];
*****************************************
if(!isset($_POST['f_priv']))
$f_priv=0; 
else
$f_priv=$_POST['f_priv'];  
******************************************
if(!isset($_POST['f_firma']))
$f_firma=0; 
else
$f_firma=$_POST['f_firma'];
*****************************************
<input type="checkbox" name="f_priv"  value = "1" />Privat   <input type="checkbox" name="f_firma" value = "1" />Firma   </td></tr>
*****************************************

Nun mein Problem:
Gleichzeitig sollten diese(gewählten) auch in die zweite Seite eingetragen werden.
Und ich weis nicht wie.
Habs schon mit diversen if Anweisungen udg. Versucht.
Heute Frage ich mal ganz Trocken, kann mir jemand ein Beispiel für die zweite Seite geben???

lg Christian
 
Hi,

also das sollten zwei verschiedene Paar Schuhe sein. Die Werte in die Datenbank eintragen funktioniert ja schon. Um die Variablen auf deiner zweiten Seite dann zu haben, kannst du sie ja entweder auf der zweiten Seite aus der Datenbank auslesen, oder du übergibst die Variablen auf der ersten Seite wieder mit Hilfe von GET oder POST an die zweite Seite.

Kleiner Tip zu deinem Code: Du führst zweimal hintereinander die gleiche if-Abfrage auf deine Variablen aus. Die "0" aus dem true-Fall kannst du auch in deinem kurzes if setzen. Ist also doppelt-gemoppelt. Ein if kannst du weg lassen.
 
Hallo sI0rp,
Danke für Deine Antwort!!

Leider sehe ich keine 2 If-schleifen.

Aber eine andere Fragestellung:
Ich will z.B.: auf der ersten Seite anhaken zur zweiten übergeben und dann erst in die DB schreiben.
Wie kann ich das Übergeben??


lg Christian
 
Hi,

also es sind if-Abfragen keine if-Schleifen ;)

PHP:
$f_priv = (!isset($_POST['f_priv'])) ? '' : $_POST['f_priv'];
$f_firma = (!isset($_POST['f_firma'])) ? '' : $_POST['f_firma'];

Das hinter den "=" sind if-Abfragen in kurzschreibweise. Hier hast du dann die if-Abfragen in "normaler" Schreibweise.

PHP:
if(!isset($_POST['f_priv']))
$f_priv=0; 
else
$f_priv=$_POST['f_priv'];  
******************************************
if(!isset($_POST['f_firma']))
$f_firma=0; 
else
$f_firma=$_POST['f_firma'];

Einzigster Unterschied: in der kurzen if-Abfrage weist du $f_priv/$f_firma einen leeren String zu anstatt der "0". Das könntest du aber auch in der kurzen if-Abfrage schon machen. Somit sparst du ein if.

Du könntest z.B. auf der ersten Seite deine Checkboxen in eine <form> packen. Dann per Druck auf den Button zur zweiten Seite und dabei natürlich die Checkboxen per POST übergeben. Auf der zweiten Seite kannst du dann die Checkboxen abfragen und ggf. anzeigen und in die Datenbank speichern.
 
Danke sl0rp!!

Du hatest recht ;) wieder was gelernt ;)

aber auf die zweite seite überträgt es trotz allem nicht, nur in die DB.

bin nach wie vor RATLOS

wäre es möglich irgendwo ein beispiel zu finden von seite eins und zwei ??

eine Idee oder kannst Du mir einen weiteren TIP geben ??

lg Christian
 
Naja, so wie du deine Daten übergibst damit du sie in der DB speichern kannst, so musst du sie auch an Seite 2 übergeben.
Ein absolutes Minimalbeispiel:
Seite 1:
PHP:
<html>
<form action="seite_zwei.php" method="post">
	Beläge:<br />
	<input type="checkbox" name="Salami" value="Salami">Salami<br />
	<input type="checkbox" name="Pilze" value="Pilze">Pilze<br />
	<input type="checkbox" name="Schinken" value="Schinken">Schinken<br />
	<input type="checkbox" name="Ananas" value="Ananas">Ananas<br />
	<input type="submit" value="zu Seite 2">
</form>
</html>
Seite 2:
PHP:
<html>
gewählte Beläge:<br />
<?php 
	if(isset($_POST["Salami"])){
		echo "<input type=\"checkbox\" name=\"Salami\" value=\"Salami\" checked=\"checked\">Salami<br />";
	}
	if(isset($_POST["Pilze"])){
		echo "<input type=\"checkbox\" name=\"Pilze\" value=\"Pilze\" checked=\"checked\">Pilze<br />";
	}
	if(isset($_POST["Schinken"])){
		echo "<input type=\"checkbox\" name=\"Schinken\" value=\"Schinken\" checked=\"checked\">Schinken<br />";
	}
	if(isset($_POST["Ananas"])){
		echo "<input type=\"checkbox\" name=\"Ananas\" value=\"Ananas\" checked=\"checked\">Ananas<br />";
	}
?>
</html>
 
Hallo sl0rp,

Danke für Deinen TIP!!

PHP:
if(isset($_POST['f_voip4']))
    {
        echo "<input type="checkbox" name="f_voip4" value="$f_voip4" checked="checked">VoIP4<br />";
    }

sobald ich dieses auf der 2ten Seite habe ist die "checkbox" immer gecheck. :(

lasse ich das weg " checked="checked" " ergiebt es auch nicht das gewünschte ergebnis ;-(

lg Christian
 
Achte darauf, dass wenn du mit echo arbeitest, du Anführungszeichen richtig escapen musst. So wie du es geschrieben hast, wäre der echo-Befehl schon nach echo "<input type=" zu Ende. Richtig würde es so aussehen:
PHP:
if(isset($_POST['f_voip4']))
    {
        echo "<input type=\"checkbox\" name=\"f_voip4\" value=\"$f_voip4\" checked=\"checked\">VoIP4<br />";
    }
Beachte die "\" vor den Anführungszeichen im Input-Tag.
Wenn du dann das checked=\"checked\" weg lässt, dann dürfte die Checkbox auch nicht mehr automatisch gecheckt sein.
Schau auch, dass du bei einem neuen Test eine neue Anfrage von Seite 1 sendest, nicht das du nur Seite 2 neu lädst. Vielleicht hängt auch da was.
 
Hallo sl0rp,

sobald ich es wie folgt mache :

PHP:
<input type=\"checkbox\" if(isset($_POST[f_voip4]))
    {
        echo " name=\"f_voip4\" value=\"$f_voip4\" checked=\"checked\";}/> VoIP4<br />

bekomme ich wenigstens eine "0" zurück aber es schaut sehr schlecht aus .

leider kann ich das hier nicht zeigen . aber wenn Du willst kannst Du es gerne mal austesten :
VoIP4.at Telefonbuch Eintrag

lg Christian
 
Ich habe das Gefühl, dass du zuviel auf einmal änderst. Vorallem wenn du dich noch nicht so auskennst bleibe erst einmal bei einem Lösungsansatz und werfe nicht immer wieder alles durcheinander. Warum hast du jetzt das if umgestellt? In diesem Code können mehrere Fehler sein, kommt drauf an, wie der Code drumrum ausschaut...
 
Halo sl0rp,

Danke für Deine Antworten!

Da ich immer versuche die Tips umzusetzen und es meist nicht von Anfang an geht, versuche ich immer wieder die verschiedenen Möglichkeiten aus. Und wenn ich denke das es dass beste Ergebnis ist versuche ich hier weiterzudenken oder wie es vielleicht Macher sagt weiter zu basteln GGG

Melde mich morgen gegen Mittag wieder,

Nochmals danke für Deine Hilfe

Lg Christian
 
Hallo sl0rp,

So ich habe es jetzt ;) dank Deiner hilfe !

ob es so richtig ist weis ich nicht aber das ergebnis ist OK!

ich habe zuerst eine zuweisung wie folgt gemacht

PHP:
if(!isset($_POST['f_voip4']))
{
$f_voip4=1;

$chek = 'unchecked';
}
else 
{
$chek = 'checked';
}

der weitere schritt wäre dann dieser:

PHP:
<td width = "155" bgcolor = "#00ffff" align="right"><span> Eintrag in  </span>
			<input
				{
					echo ' type='checkbox' name='f_voip4' value='' $chek='' ';
				}   /> VoIP4<br />

wenn es eine bessere und einfachere gibt , wäre es sicher nicht schlecht diese mal zu sehen ;)

lg und Danke Christian
 
Hi,

und der zweite Code-Schnipsel, den du gepostet hast, funktioniert so? Kommt wohl darauf an, wie der andere Code davor ausschaut. Ich sehe da zwei Möglichkeiten:

1. An dieser Stelle existiert kein PHP-Block: wenn an dieser Stelle kein PHP läuft, kannst du das echo, den ";" und das erste und letzte " ' " weglassen.

2. Wenn das alles in einem PHP-Block steht: Dann wundert es mich, dass du da einfache HTML-Befehle schreiben kannst, und dir bei der Ausführung kein Fehler angezeigt wird. Weiter wären bei dem "echo" wieder deine Anführungszeichen falsch escapet. Lies dir vielleicht das mal durch.

Ich glaube eher das du dort gar keinen PHP-Code ausführst, da sonst der PHP-Interpreter meckern sollte. ;)
 
Oben