Mr_J: PHP und FUnktionsaufrufe

Hallo an alle Fleißigen Ratgeber,

Ich habe so kurz vor Weihnachten noch eine kleine Frage...

Folgende Problemstellung:

EIgentlich ganz einfach, will über vier RadioButtons eine Bewertung für ein Dokument abfragen und dies dann an eine Datenbank schicken.

Hier nun der Quelltext:

<?php
          echo' <tr>
            <td width="112" align="center" valign="bottom" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
              <input type="radio" value="1" name="radiobutton"></td>
            <td width="112" align="center" valign="bottom" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
                <input type="radio" value="2" name="radiobutton">
            </td>
            <td width="111" align="center" valign="bottom" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
               <input type="radio" value="3" name="radiobutton">
            </td>
            <td width="111" align="center" valign="bottom" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
                <input type="radio" value="4" name="radiobutton">
            </td>
          </tr>
          <tr>
            <td width="112" align="center" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
              Sehr gut</td>
            <td width="112" align="center" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
              gut</td>
            <td width="111" align="center" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
              mittel</td>
            <td width="111" align="center" bgcolor="#FFFFFF" height="1" bordercolor="#FFFFFF">
              weniger gut</td>
          </tr>
          <tr>
            <td width="446" align="center" bgcolor="#FFFFFF" height="17" bordercolor="#FFFFFF" colspan="4">
               </td>
          </tr>
          <tr>
            <td width="446" align="center" bgcolor="#FFFFFF" height="32" bordercolor="#FFFFFF" colspan="4">

<form method="POST" action=update() onSubmit="http://google.de">

<input type="submit" value="Abschicken" name="B1" style="font-weight: bold"></p>
               </form>

</td>
          </tr>
          </table>';

function update()
          {
   require ("feedbackconfig.php");
     $db = mysql_connect ("localhost", $user, $password);
     if ($db) {
               if ($radiobutton==1) {

$befehl = "UPDATE $table SET SehrGut=SehrGut+1 WHERE Thema=Building Block";
                    $result = mysql_db_query ($database,$befehl);
               }
        elseif ($radiobutton==2) {

$befehl = "UPDATE $table SET Gut=Gut+1 WHERE Thema=Building Block";
                    $result = mysql_db_query ($database,$befehl);
               }
               elseif ($radiobutton==3) {

$befehl = "UPDATE $table SET Mittel=Mittel+1 WHERE Thema=Building Block";
                    $result = mysql_db_query ($database,$befehl);
               }
               elseif ($radiobutton==4) {

$befehl = "UPDATE $table SET WenigerGut=WenigerGut+1 WHERE Thema=Building Block";
                    $result = mysql_db_query ($database,$befehl);
               }
            }};
          ?>

Eigentlich sollte der Funktionsaufruf doch funktionieren, wenn der Button und die Funktion im selben PhP-Block definiert sind,oder nicht?

Die Funktion wird allerdings nicht gefunden. ISt wahrscheinlich ein grundlegender Denkfehler, da ich gerade erst angefangen habe mit PHP rumzubasteln. ;-)

Vielen Dank im Voraus, eine schönes Fest und nen guten Rutsch!

Jürgen

  1. Jürgen

    Mit

    <form method="POST" action=update() onSubmit="http://google.de">

    ruft man

    function update()

    sicher nicht auf!

    Du hast wirklich fundamentale Fehler im Code, die noch nicht mal nur mit PHP sondern auch HTML zu tun hat. Das FORM Tag beinhaltet beispielsweise die RadioButtons nicht - die stehen bei Dir irgendwo im HTML Code drin. So kann das nicht gehen...

    kaepten

  2. Hallo Mr. Jürgen!

    EIgentlich ganz einfach, will über vier RadioButtons eine Bewertung für ein Dokument abfragen und dies dann an eine Datenbank schicken.
    [html-bla uninteressant]
      <form method="POST" action=update() onSubmit="http://google.de">

    [PHP]          function update()

    Eigentlich sollte der Funktionsaufruf doch funktionieren, wenn der Button und die Funktion im selben PhP-Block definiert sind,oder nicht?

    Die Funktion wird allerdings nicht gefunden. ISt wahrscheinlich ein grundlegender Denkfehler, da ich gerade erst angefangen habe mit PHP rumzubasteln. ;-)

    Ähm, Du willst also mit action=update() Deine PHP-Funktion aufrufen?!?

    Das kann nie nicht gehen.
    Du mußt das Formular an ne PHP-Seite schicken, also z.b. action="auswertung.php", und in dieser Datei dann die uebergebenen Variablen prüfen, und dann halt deine Funktion aufrufen.

    Ich hoffe, du verstehst, was ich mein.
    Wenn nicht rate ich Dir dringend, daß Du dir erstmal Grundlagen in PHP aneignest, Links zu Tutorials usw. gibts im Archiv genügend, hab grad keine Lust ein passnedes Posting wo alle drinstehn rauszusuchen, solltest du aber auch allein hinbekommen.

    MfG
    Götz

    --
    Losung und Lehrtext für Dienstag, 23. Dezember 2003
    Gottes Brünnlein hat Wasser die Fülle. (Psalm 65,10)
    In Christus wohnt die ganze Fülle der Gottheit leibhaftig und an dieser Fülle habt ihr teil in ihm, der das Haupt aller Mächte und Gewalten ist. (Kolosser 2,9-10)
    (http://www.losungen.de/heute.php3)
  3. Moin!

    EIgentlich ganz einfach, will über vier RadioButtons eine Bewertung für ein Dokument abfragen und dies dann an eine Datenbank schicken.

    <form method="POST" action=update() onSubmit="http://google.de">

    function update()
              {
              };
              ?>

    Eigentlich sollte der Funktionsaufruf doch funktionieren, wenn der Button und die Funktion im selben PhP-Block definiert sind,oder nicht?

    Die Funktion wird allerdings nicht gefunden. ISt wahrscheinlich ein grundlegender Denkfehler, da ich gerade erst angefangen habe mit PHP rumzubasteln. ;-)

    Überlege dir:
    1. Wo wird PHP ausgeführt? (Andere Antworten als "Auf dem Server" sind falsch).
    2. Wo wird HTML angezeigt? (Andere Antworten als "Im Browser" sind falsch).
    3. Was passiert, wenn du deine Formularseite aufrufst? Hat der Benutzer zu dem Zeitpunkt, wo PHP aktiv ist, schon die Chance gehabt, eine Auswahl zu treffen?
    4. Was passiert, wenn du ein Formular abschickst? Warum ist für "action" in <form> eine URL anzugeben, und keine PHP-Funktion?

    Schau dir einfach mal mit "Quelltext anzeigen" den Text an, der in deinem Browser angekommen ist. Wenn du da irgendwas von PHP siehst, ist dein Server kaputt. Andernfalls funktioniert der Server prima, aber der Browser hat keine Ahnung, was passieren soll, wenn eine Bewertung ausgewählt wurde.

    Lies insbesondere auch mal den Text über das Affenformular. http://www.dclp-faq.de/q/q-stil-normalform.html Und auch alles andere über Formulare dort: http://www.dclp-faq.de/ch/ch-webvariablen.html. Und am besten sowieso die ganze FAQ. Daraus kannst du wirklich nur lernen.

    - Sven Rautenberg

    --
    Die SelfHTML-Developer sagen Dankeschön für aktuell 20065,57 Euro Spendengelder!