checkboxen geben nicht das aus was ich will

marcey

Mitglied
das problem ist das ich nicht weiß worin das problem liegt und zwar habe ich mehrere checkboxen mit post variabeln an ein php script übergeben und diese dan auswerten lassen ;

<?
if(isset($_POST['name'])&&
isset($_POST['nachname'])&&
$_POST['name']=='frtiz'&&
$_POST['nachname']=='ritz')
{
echo "fritz ritz";
}

else isset($_POST['name'])&&
$_POST['name']=='fritz';
{
echo "fritz";
}
if (isset($_POST['name'])&&
$_POST['name']=='peter')

{
echo "peter";
}
?>

allerdings wenn ich jetzt bei nachname "fritz"und bei nachname "ritz"anklicke übermittelt er mir beide echos
einmal das "firtz" und das "fritz ritz" ich möchte aber nur "fritz ritz" da haben

das ander fuktioniert ja wen ich peter anklicke kommt peter und bei fritz komt auch fritz aber bei 2 angeklickten checkboxen klappt es nicht mehr wie löst mann dieses problem thx :confused:


wer nicht versteht wie ich das mit den checkboxen meinte

<body>
<form action ="checkbox.php" method="post">
<input type=checkbox name="name" value="fritz" >
<input type=checkbox name="name" value="peter" >
<input type=checkbox name="nachname" value="ritz" >
<input type="submit" name="save">
.
..
.
.
 
Zuletzt bearbeitet:
Du verwendest bei einer else eine weitere Bedingung und das Script läuft?
Da müsste wohl eher ein "elseif(){}" hin oder? Und dann muss die letzte if, in die else, dann sollte es laufen :)

Aber wäre ein
<?
print $_POST['name']." ".$_POST['nachname'];
?>
Nicht einfacher
 
Na mal abgesehen davon das der obige Code überhaupt nicht fehlerfrei arbeiten kann, wäre die Lösung von String fast richtig.

Angenommen es wird nur ein Vorname bzw. nur ein Nachnema übergeben, dann steht am Anfang oder am Ende ein überflüssiges Leerzeichen. Außerdem wird in so einem Fall ein Fehler erzeugt weil auf eine nicht vorhandene Variable zugegriffen wird.

PHP:
echo trim(@$_POST['name']." ".@$_POST['nachname']);
 
die inhalte also das echo sollte nur ein beispiel sein ,genau so wie die input felder,da soll schon mehr inhalt rein nit nur den value ((sry bisschen unübersichtlich ) mit else if habe ich auch schon probiert war das gleiche der gibt immer alle if oder else mit aus also jeder echo befehl der true ist , ich denke das problem ist das er immer alles was true ist ausgibt (jetzt weiß ich schonmal wo das problem ist haha nur schreiben hilft manchmal ) ....weißt jemand wie das problem mit den true gelöst werden kann
 
aber danke das ihr mir schon so schnell helfen wollt ja der obrige txt war auch nur so geschrieben ohne zu überprüfen ich arbeite mit dreamweaver deswegen mach ich öffter fehelr noch
 
Also wenn du mal den tatsächlichen Code hier rein stellst mit dem du auch arbeitest bzw. uns sagst was du genau machst, dann kann dir bestimmt auch jemand sagen wie man das Problem mit "...den true..." lösen kann.
 
Ich schätze jetzt einfach mal:

Code:
<?
if($_POST['name']=="fritz" && $_POST['nachname']=="ritz"){
   print "fritz ritz";
}
elseif($_POST['name']=="fritz"){
   print "fritz";
}
elseif($_POST['name']=="peter"){
   print "peter";
}
?>

So sollte dein Code funktionieren :) - Und ja, das "isset()" habe ich bewusst weggelassen, zu viel tipperrei ;)

paD
 
Zuletzt bearbeitet:
Dein ersten Vorschlag war doch (fast) richtig.

Die Lösung wie du jetzt geschrieben hast kann es so nicht geben. Alle deine POST Variablen haben den Namen "name" und somit kann es die erste IF Anweisung nie geben.

Ich würde deinen ersten Code zusammen mit meiner kleinen Änderung übernehmen. Damit sollte es doch wie gewünscht funktionieren!?
 
das ist html code

<form action= "checkbox.php" method="post" >

<input type=checkbox name="Farbe" value="Rot" >
Rot
<br>

<input type=checkbox name="Farbe" value="Blau" >

Blau<br>
<br />
<input type=checkbox name="Form" value="Würfel" >

Würfel<br>

<input type=checkbox name="Form" value="Ball">
Ball<br>
<input type="submit" name="save">

</form>


das ist checkbox.php

<?
if(isset($_POST['Form'])&&
isset($_POST['Farbe'])&&
$_POST['Form']=='Würfel'&&
$_POST['Farbe']=='Blau')
{
echo "hier sind alle blaue würfel";
}

if(isset($_POST['Farbe'])&&
$_POST['Farbe']=='Blau');
{
echo "alle dateien mit baluen inhalt";
}
if (isset($_POST['Farbe'])&&
$_POST['Farbe']=='Rot')

{
echo "alle roten dateien";
}
?>


nochmal zum verständinss
 
Zuletzt bearbeitet:
Hab meinen Beitrag mal bearbeitet.
Die erste if war natürlich falsch, sorry - und danke für den Hinweis :)

Ja, ich dachte, da er geschrieben hat, dass das alles nur Beispiele sein sollen, mit der ausgabe, und das anstatt der einfachen ausgabe "print 'fritz';" noch irgendwas anderes passieren soll und das es deswegen ne if / else / elseif sein muss.. :)
 
Zurück