Avatar billede Hansen_ Praktikant
14. oktober 2010 - 13:02 Der er 13 kommentarer og
1 løsning

Radio Button med else if?

Hej.

Jeg har lige et simpelt spørgsmål til jer. :)

Jeg skal lave radio buttons, men hvor kun 1 kan være markeret og posted. Men driller lidt for mig. Har kigget på nettet og her på eksperten, men kan ikke lige finde en så simpel kode.

--------koden

if
($selected_radio = $_POST['Gyser']);
print $selected_radio;

else

($selected_radio = $_POST['Action']);
print $selected_radio;


Som i kan se, så vil jeg bare have at hvis Gyser er valgt, så skal den poste det og ellers skal den tage action.

Vil så have flere buttons på, men den vælger selv lidt synes jeg :/
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 13:14 #1
Tror egentlig jeg er helt skævt på den..

Har lige set jeg ikke engang har fat i db'en.

(er lidt ny i dette) :/
Avatar billede repox Seniormester
14. oktober 2010 - 13:30 #2
Du skal bruge to lighedstegn for at evaluere din sætning. Ved kun at bruge et tildeler du variablen en værdi og det vil som udgangspunkt altid evaluere som sandt...
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 13:39 #3
Så får jeg en

Parse error: syntax error, unexpected T_ELSE

i den linje med ELSE.

men jeg skal vel egentlig også have gemt radioen i en tabel, da denne skal skrives med til "ADD" funktionen.

En film database jeg er igang med at rode med, så derfor skal radio'en gemmes sammen med filmtitel etc. :)
Avatar billede repox Seniormester
14. oktober 2010 - 14:49 #4
Du laver også adskillige syntaksfejl.
Du afslutter ikke en evaluering med semikolon.
Syntaksen er:
if( $selected_radio == $_POST['Gyser'] )
  print $selected_radio;
elseif( $selected_radio == $_POST['Action'] )
  print $selected_radio;


Jeg kan dog ikke garantere for at logikken er korrekt i forhold til din opbygning, men syntaksen er.

Jeg ved ikke hvad din "ADD" funktion er og jeg er ikke sikker på jeg forstår hvad du mener med at radio'en skal gemmes sammen med en filmtitel.

Hvis ovenstående stump kode ikke giver dig hvad du har behov for, må du komme med lidt mere kode og en dybere beskrivelse af hvad det er du vil opnå, hvordan du vil opnå det og hvad dit nuværende resultat er.
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 15:00 #5
Ok :)

jeg prøver lige igen. sorry for en ret messy start.

********
Jeg er igang med at lave en database for film.

Jeg har selve filmtitlen på plads. Nu skal jeg så have lavet nogle radio knapper, som gemmes sammen med filmtitlen.

feks - die hard 2 - action (gyser, komedie) osv. radio knapperne.

Jeg kan godt få radio knappen til at virke, men radio knappens input forsvinder når jeg opdaterer eller skriver en ny film ind. dvs radio knappen skal gemmes sammen med film titlen, så jeg på denne måde ved at die hard 2 altså er en action film. :)
*********
------------- KODEN.
<html><head></head><body>
<form action="test.php" method="post">
Filmnavn: <input type="text" name="filmnavn"><br>
Genre: <input type="radio" name="Genre" value="Gyser">Gyser<br>
Genre: <input type="radio" name="Genre" value="Action">Action<br>
Årstal: <input type="number" name="Year"><br>
Format: <input type="text" name="Format"><br>

<input type="submit" name="Addmovie" value="Add">
</form></body></html>

<?php
$connect = mysql_connect("", "", "") or die(mysql_error);
mysql_select_db("sanded_dk", $connect) or die (mysql_error);


$add_filmnavn = "INSERT INTO dennis_filmnavn (id, date_added, date_modified, filmnavn) VALUES ('', now(), now(), '$_POST[filmnavn]')";
mysql_query($add_filmnavn) or die(mysql_error());

$sql = mysql_query("SELECT * FROM dennis_filmnavn");

while ($row = mysql_fetch_assoc($sql)) {
    ?>

    <p><?= $row['filmnavn']; ?></p>

    <?php
}

//teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest

if( $selected_radio == $_POST['Gyser'] )  print $selected_radio; elseif( $selected_radio == $_POST['Action'] )  print $selected_radio;




?>
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 15:00 #6
Ok :)

jeg prøver lige igen. sorry for en ret messy start.

********
Jeg er igang med at lave en database for film.

Jeg har selve filmtitlen på plads. Nu skal jeg så have lavet nogle radio knapper, som gemmes sammen med filmtitlen.

feks - die hard 2 - action (gyser, komedie) osv. radio knapperne.

Jeg kan godt få radio knappen til at virke, men radio knappens input forsvinder når jeg opdaterer eller skriver en ny film ind. dvs radio knappen skal gemmes sammen med film titlen, så jeg på denne måde ved at die hard 2 altså er en action film. :)
*********
------------- KODEN.
<html><head></head><body>
<form action="test.php" method="post">
Filmnavn: <input type="text" name="filmnavn"><br>
Genre: <input type="radio" name="Genre" value="Gyser">Gyser<br>
Genre: <input type="radio" name="Genre" value="Action">Action<br>
Årstal: <input type="number" name="Year"><br>
Format: <input type="text" name="Format"><br>

<input type="submit" name="Addmovie" value="Add">
</form></body></html>

<?php
$connect = mysql_connect("", "", "") or die(mysql_error);
mysql_select_db("sanded_dk", $connect) or die (mysql_error);


$add_filmnavn = "INSERT INTO dennis_filmnavn (id, date_added, date_modified, filmnavn) VALUES ('', now(), now(), '$_POST[filmnavn]')";
mysql_query($add_filmnavn) or die(mysql_error());

$sql = mysql_query("SELECT * FROM dennis_filmnavn");

while ($row = mysql_fetch_assoc($sql)) {
    ?>

    <p><?= $row['filmnavn']; ?></p>

    <?php
}

//teeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeest

if( $selected_radio == $_POST['Gyser'] )  print $selected_radio; elseif( $selected_radio == $_POST['Action'] )  print $selected_radio;




?>
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 15:01 #7
dobbelt post, suk hvor det går. :/
Avatar billede repox Seniormester
14. oktober 2010 - 15:22 #8
Nogle spørgsmål:
1) Skal genren gemmes i tabellen dennis_film?
2) Indsættes der ikke en tom række i tabellen hver gang du viser siden?
3) Hvad indeholder variablen $selected_radio?
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 15:41 #9
1) Skal genren gemmes i tabellen dennis_film?

Nej, men i dennis_genre. :)

2) Indsættes der ikke en tom række i tabellen hver gang du viser siden?

Nej, ikke hvad jeg har set af.

3) Hvad indeholder variablen $selected_radio?

Det er blot en variable, men det er her jeg skal have løsningen. Så denne er bare test fra min side, skal bare ændres. :)

Men kanon hvis du kan hjælpe. :D
Avatar billede repox Seniormester
14. oktober 2010 - 15:47 #10
Jeg forstår ikke hvorfor du ikke får tomme felter i databasen? Ligger al koden du viste i #6 i den samme fil?
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 15:52 #11
ja.

Men kan du da lave så jeg ikke får tomme felter i databasen? så vil jeg da takke :)
Avatar billede repox Seniormester
14. oktober 2010 - 16:06 #12
Nedenstående vil være mit bud på en mere effektiv kode til at opnå det du gerne vil. Men det virker stadig ikke helt gennemtænkt - der mangler en del logik omkring brugen af din formular, men her er da et bud på det du forsøger at opnå:

<?php
    $connect = mysql_connect("", "", "") or die(mysql_error);
    mysql_select_db("sanded_dk", $connect) or die (mysql_error);

    if( isset($_POST["filmnavn"]) )
    {
        $add_filmnavn = "INSERT INTO dennis_filmnavn (id, date_added, date_modified, filmnavn) VALUES ('', now(), now(), '".mysql_real_escape_string($_POST["filmnavn"])."')";
        mysql_query($add_filmnavn) or die(mysql_error());
       
        $filmId = mysql_insert_id();
       
        /* Det er bare et gæt på din struktur i genre databasen */
        $add_genre = "INSERT INTO dennis_genre (filmId, genre) VALUES (".$filmId.", '".mysql_real_escape_string($_POST["Genre"])."')";
        mysql_query($add_genre) or die(mysql_error());
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
   
        <form action="test.php" method="post">
            Filmnavn: <input type="text" name="filmnavn" value="<?php if(isset($_POST["filmnavn"])) echo $_POST["filmnavn"]; ?>"><br>
            Genre: <input type="radio" name="Genre" value="Gyser"<?php if(isset($_POST["Genre"]) && $_POST["Genre"] == "Gyser") echo " checked=\"checked\""; ?>>Gyser<br>
            Genre: <input type="radio" name="Genre" value="Action"<?php if(isset($_POST["Genre"]) && $_POST["Genre"] == "Action") echo " checked=\"checked\""; ?>>Action<br>
            Årstal: <input type="text" name="Year" value="<?php if(isset($_POST["Year"])) echo $_POST["Year"]; ?>"><br>
            Format: <input type="text" name="Format" value="<?php if(isset($_POST["Format"])) echo $_POST["Format"]; ?>"><br>
           
            <input type="submit" name="Addmovie" value="Add">
        </form>

        <?php
        $query = mysql_query("SELECT * FROM dennis_filmnavn");
        while ($row = mysql_fetch_assoc($query)):
    ?>

    <p><?php echo $row["filmnavn"]; ?></p>

    <?php endwhile; ?>



    </body>
</html>
Avatar billede Hansen_ Praktikant
14. oktober 2010 - 16:16 #13
Ved godt det ikke er pro og som skrevet er jeg ikke nogen haj til php, men kæmper for at lære :)

Nok derfor der ikke er nogen vild struktur i det, da jeg pt bare øver mig i at få php til at virke. :)

Men tak for hjælpen, men synes lidt dit svar er for voldsomt til mig på mit nuværende niveau :) nok bare mig som ikke er god nok til at tyde det helt endnu :)

Bare smid et svar, så lukker jeg denne og prøver at rode lidt med din formel du har skrevet. Men vender nok tilbage igen :).
Avatar billede repox Seniormester
14. oktober 2010 - 16:22 #14
Vi starter jo alle et sted ;) Men ja, rod lidt med formularen og se om det ikke lige er noget der kommer til at give mening for dig, ellers må du spørge.

Held og lykke med det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester