Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit kleiner Abfrage

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit kleiner Abfrage

    Guten Tag,

    ich versuche ein kleines PHP Projekt zu realisieren und habe ein Problem mit der Auswertung von zwei Komponenten.

    Es soll folgendermaßen funktionieren:
    Ich rufe eine PHP Seite auf und wähle dort aus einem Dropdownmenü einen Benutzer aus. Darunter gebe ich in ein Textfeld eine Aufgabe für ihn ein und schicke sie mit einem SubmitButton ab. Daraufhin wird der Benutzername und der Text aus dem Textfeld in eine SQL Datenbank geschrieben.

    Die Benutzer werden aus der Datenbank heraus in das Dropdownmenü geschrieben, was auch bereits funktioniert. Diese PHP Seite ist eingebettet in eine größere Struktur, daher existieren bereits Benutzer etc. Ich wusste nicht genau wie ich ein Textfeld kreiere und habe daher auf ein simples zurückgegriffen. Das Problem ist jetzt, dass ich dem "Submit"button sagen muss, dass die Daten die im Dropdownmenü selektiert sind (1 Benutzer) und die Aufgabe (1 Text im Textfeld) in die Datenbank geschrieben werden sollen.

    Folgendes habe ich versucht:


    PHP-Code:
    <?php
    //Verbindung zur DB
    $verbindung mysql_pconnect"localhost""Benutzername""Passwort");
                            if (!
    $verbindung
                            {
                            exit;
                            }
                            
    mysql_select_db("promo");
    ?>
    <form method="post" onsubmit="return writetask()">
    <select name="menu1" class="textklein" onChange="MM_jumpMenu('parent',this,0)">
    <option>&raquo; Benutzer waehlen</option>
    <?php $query =mysql_query("SELECT name FROM jos_users");
    while ( 
    $row mysql_fetch_array($query)){
    echo 
    "<option value=\"".$row['name']."\">".$row['name']."</option>";
    }
    ?>
    </select>
    <br>
    <!//Textfeld->
    Auftrag:<br>
    <textarea name="$message" cols="25" rows="8"></textarea>
    <br>
    <input type="submit" value="Auftrag abschicken">
    </center>
    </form>

    <?php 
    function writetask()
        {
    global 
    $database;           
    $query "CREATE TABLE IF NOT EXISTS `#__usertasks` (  `username` varchar (25), `task` varchar (25))"//erstmal tabelle anlegen
      
    $database->setQuery$query );
        }
    ?>
    Das Darstellen der Benutzer in DropdownForm funktionier. Das Erstellen Datenbankeinträge nicht.
    Ich würde mich sehr freuen, wenn mir jemand ein wenig helfen könnte.
    Vielen Dank schon Mal!


  • #2
    onsubmit="return writetask()"> ist ein Javascript- kein PHP-Event!
    "Nobody is as smart as everybody" - Kevin Kelly
    — The best things in life aren't things

    Kommentar


    • #3
      Jo, das stimmt. Wie ruf ich denn über einen Submitbutton eine Php-Funktion auf?
      Btw: Ist meine Funktion so überhaupt zu gebrauchen?

      PHP-Code:
      <?php 
      function writetask()
          {
      global 
      $database;           
      $query "CREATE TABLE IF NOT EXISTS `#__usertasks` (  `username` varchar (25), `task` varchar (25))"//erstmal tabelle anlegen
        
      $database->setQuery$query );
          }
      ?>

      Kommentar


      • #4
        Wenn du das formular abschickst kannst du es in etwa so machen:
        PHP-Code:
        $send = ( ! empty( $_POST'send' ] ) ) ? true false;

        if ( 
        $send )
          
        writetask( ); 
        Mfg Tomtaz
        "Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."

        Kommentar


        • #5
          Gib doch in deinem Formular einfach versteckt eine Variable mit. Diese kannst du dann mit PHP auslesen und ggf. mit einem Event reagieren.

          Im Formular:
          PHP-Code:
          <input type="hidden" name="php-funktion" value="true"
          Auslesen per PHP:
          PHP-Code:
          if($_REQUEST["php-funktion"]==true)
          {
             ...
          //Hier kommt deine PHP-Funktion

          Kommentar


          • #6
            Zitat von stinger133 Beitrag anzeigen
            PHP-Code:
            <input type="hidden" name="php-funktion" value="true"
            Sicher, dass der Bindestrich ein gültiger Attributbestandteil ist?
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Danke für die Antworten!
              Ich verzettel mich hier immer weiter und bau vermutlich mehr Fehler ein, als ich behebe. Daher ist hier mein Quelltext. Vielleicht hat ja einer von euch einen Moment Zeit um mal zu schaun, wo sich die haarigsten Fehler befinden.

              PHP-Code:
              <html>
              <head>
              </HEAD>
              <title>Submit task</title>
              <body>

              <?php
                 $verbindung 
              mysql_pconnect"localhost""sqlbenutzername""sqlpasswort");
                 if (!
              $verbindung
                 {
                 exit;
                 }
                 
              mysql_select_db("promo");

                 function 
              writetask()
                 {
                 
              $query "CREATE TABLE IF NOT EXISTS `#__usertasks` (  `username` varchar (25), `task` varchar (25))";
                 
              $verbindung->setQuery$query );
                 }
                 
              ?>

              <form method="post" onsubmit="phpfunktion">
                <select name="menu1" class="textklein" onChange="MM_jumpMenu('parent',this,0)">
                  <option>&raquo; Benutzer waehlen</option>
                  <option>---------------------------</option>
                  <?php 
                     $query 
              =mysql_query("SELECT name FROM jos_users");
                     while ( 
              $row mysql_fetch_array($query)){
                     echo 
              "<option value=\"".$row['name']."\">".$row['name']."</option>";
                     }
                     
              ?>
                </select>
                <br>

              Auftrag:
              <br>
              <textarea name="$message" cols="25" rows="8"></textarea>
              <br>
              <input type="hidden" name="phpfunktion" value="true">
              <input type="submit" value="Auftrag abschicken" onsubmit="phpfunktion">
              </form>
              </body>
              </html>

              Kommentar


              • #8
                Vergiss einfach mal das onsubmit, da kannst du keine PHP-Funktion aufrufen. Sondern du übergibst eine Variable, die du dann im Script selber wieder überprüfen kannst. Befasse dich doch erst mal ein wenig mit den Grundlagen der Formularverarbeitung. Und lese auch mal den Abschnitt über Fehlerhandling in den Forumsregeln.
                Gruss
                L

                Kommentar


                • #9
                  ok, danke

                  Kommentar


                  • #10
                    Oder noch einfacher: Dein Submit-Button bekommt nen Namen und du sparst dir die Hidden Var und überprüfst, ob (bei <input type="submit" name="schicken" value="Senden") $_POST['schicken'] denn "Senden" ist.
                    Hallo, ich bin eine Signatur!

                    Kommentar


                    • #11
                      Darauf kannst du dich aber nicht verlassen, wenn du das Formular mit ENTER abschickst, wird der Wert nicht in jedem Browser uebertragen.
                      "Mein Name ist Lohse, ich kaufe hier ein."

                      Kommentar


                      • #12
                        In welchen denn nicht?
                        Hallo, ich bin eine Signatur!

                        Kommentar


                        • #13
                          Gute Frage, aber das ist ab und zu durchs Forum gegeistert.
                          "Mein Name ist Lohse, ich kaufe hier ein."

                          Kommentar


                          • #14
                            Wahrscheinlich eine Großstadtlegende Aber gut, ein extra hidden Field dafür einzurichten kostet jetzt auch keine Stunde.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              Zitat von Blue-Dragon Beitrag anzeigen
                              In welchen denn nicht?
                              OK habs ueberprueft - Internet Explorer 7 z.B. nicht:
                              PHP-Code:
                              <html>
                                  <head>
                                      <title></title>
                                  </head>
                                  <body>
                                      <div>
                                          <? print_r(@$_POST) ?>
                                      </div>
                                      <form action="" method="post">
                                          <input name="text" />
                                          <input name="senden" type="submit" />
                                      </form>
                                  </body>
                              </html>
                              Firefox hingegen schon.
                              "Mein Name ist Lohse, ich kaufe hier ein."

                              Kommentar

                              Lädt...
                              X