Radio-Button Wert wird nicht übertragen

  • Hi guys,

    Habe hier ein Formular und nutze das erste Mal Radio-Buttons.
    Dachte, dass ich die Werte einfach per POST übertragen könnte, aber irgendwie will es nicht so.

    Ausgangslage:
    Im Formular steht

    HTML
    <input type="radio" name="kategorie" value="sonstiges">Sonstige Bilder
    <input type="radio" name="kategorie" value="artikelbild">Artikelbild

    Es soll nur ein Button auswählbar sein, deshalb tragen beide den gleichen Namen "Kategorie". Lässt sich auch auswählen, nun aber zum Eintrag in die Datenbank.
    Ich habe es mit

    PHP
    $kategorie = $_POST['kategorie'];

    und

    PHP
    $kategorie = $_REQUEST['kategorie'];


    probiert, aber er gibt mir jedes Mal wenn ich bspw.

    PHP
    echo $kategorie

    ausgeben lasse nur "artikelbild" aus, auch wenn ich im Formular "sonstiges" ausgewählt habe.
    Das macht eine if-Schleife dementsprechend unmöglich.


    Bin jetzt irgendwie überfragt, da ich mehrmals gecheckt habe, ob irgendwo ein Zeichen fehlt oder so.
    Hoffe auf eine hilfreiche Antwort

    Danke im Voraus!

  • Einmal hast du ein Array, aber mit echo sprichst du eine Variable an!

  • Die Radio Buttons erzeugen also ein Array?

    Okay dann mal abgesehen von dem Echo Befehl, der nur als Überprüfung dienen sollte:
    Ich will den Wert in eine Datenbank übertragen. Wie mach ich das denn dann?

  • Bitte zeige den kompletten Quellcode, diese Schnipsel sagen nicht viel aus.

  • Radios-Button erzeugen kein Array, außer man schreibt das ins name-Attribut mit eckigen Klammern rein.

    Lass dir mal den Inhalt von $_POST ausgeben:

    PHP
    var_dump($_POST);

    Dann solltest Du sehen wo die Werte stehen. Momentan tippe ich auch noch auf einen doppelt verwendeten Variablennamen.

  • Wenn ich das ausgeben lasse kommt folgendes:

    Code
    array(3) { ['name']=> string(5) "Test" ['kategorie']=> string(9) "sonstiges" ['quelle']=> string(0) "" }


    Formular Script:
    <h3>Bild hochladen</h3>
    <form action="bilder_upload.php" method="POST" enctype="multipart/form-data">
    <table border="0">
    <tr><td>Bildname:</td><td><input name="name" size="30"></td><tr>
    <tr><td>Kategorie:</td><td>
    <input type="radio" name="kategorie" value="sonstiges">Sonstige Bilder
    <input type="radio" name="kategorie" value="artikelbild">Artikelbild
    </td><tr>
    <tr><td>Quelle:</td><td><input name="quelle" size="30"></td></tr>
    <tr><td>Datei:</td><td><input name="download" type="file" size="30"></td></tr>
    </table>
    <p><input type="submit" value="Hochladen"></p>
    </form>
    [/code]

    Und PHP Befehl:


    Danke schonmal!

  • Du hast hier eine doppelte Prüfung drinne:

    PHP
    if(empty($name) || empty($kategorie) || empty($download) || empty($kategorie))

    Und hier ist es kein Vergleich sondern eine Zuweisung:

    PHP
    if ($kategorie = "artikelbild")

    Also das ändern in:

    PHP
    if ($kategorie == "artikelbild")
  • Und wieso hast du die Hälfte des Quellcodes doppelt? Das kann man deutlich verbessern. Außerdem solltest du über $name und $quelle auh noch ein mysql_real_escape_string laufen lassen.

  • Danke habe es jetzt verbessert und aufgeräumt, damit nicht alles doppelt da steht.

    Vielen Dank für die schnelle Hilfe!