Ankündigung

Einklappen
Keine Ankündigung bisher.

Listbox | MySQL | Text Field

Einklappen

Neue Werbung 2019

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

  • Listbox | MySQL | Text Field

    Guten abend liebe PHP.de Community,
    Ich habe ein klitzekleines problemchen.

    Ich habe eine Dynamische List Box die sich ihren Inhalt aus der DB "Jobs" und der Spalte "AuftragName" holt.
    Das Funktioniert auch.
    Nun möchte ich das sich das Textfield mit "AuftragDetail" füllt. aber nur das was in der Selben Zeile wie "AuftragName" ist

    bsp.

    AuftragID = 0 | AuftragName = Kirschen | AuftragDetail = Kirschen von Potsdam nach Köln Transportieren.

    AuftragID = 1 | AuftragName = Möbel| AuftragDetail = Möbel von Bremen nach Bremerhaven Transportieren.

    Ich hoffe Ihr versteht was ich meine

    Wie kann ich das am besten umsetzen. vlt habt Ihr auch ein paar Code Schnipsel ^^

    MFG Derek Westbrook














  • #2
    Hallo und herzlich willkommen im Forum,

    Bitte poste Deinen bisherigen Code, vermutlich bedarf es zur Lösung Deines Problems nur einer kleinen Anpassung.
    Ich vermute mal, Du mußt einfach nur die Spalte in die Query reinziehen, wenn ich Deine Frage richtig verstanden habe.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      PHP-Code:
      <?php require_once('Connections/SatDB.php'); ?>
      <?php
      if (!isset($_SESSION)) {
        
      session_start();
      }
      $MM_authorizedUsers "2,3,4";
      $MM_donotCheckaccess "true";

      // *** Restrict Access To Page: Grant or deny access to this page
      function isAuthorized($strUsers$strGroups$UserName$UserGroup) { 
        
      // For security, start by assuming the visitor is NOT authorized. 
        
      $isValid False

        
      // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
        // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
        
      if (!empty($UserName)) { 
          
      // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
          // Parse the strings into arrays. 
          
      $arrUsers Explode(","$strUsers); 
          
      $arrGroups Explode(","$strGroups); 
          if (
      in_array($UserName$arrUsers)) { 
            
      $isValid true
          } 
          
      // Or, you may restrict access to only certain users based on their username. 
          
      if (in_array($UserGroup$arrGroups)) { 
            
      $isValid true
          } 
          if ((
      $strUsers == "") && false) { 
            
      $isValid true
          } 
        } 
        return 
      $isValid
      }

      $MM_restrictGoTo "Login.php";
      if (!((isset(
      $_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
        
      $MM_qsChar "?";
        
      $MM_referrer $_SERVER['PHP_SELF'];
        if (
      strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
        if (isset(
      $QUERY_STRING) && strlen($QUERY_STRING) > 0
        
      $MM_referrer .= "?" $QUERY_STRING;
        
      $MM_restrictGoTo $MM_restrictGoTo$MM_qsChar "accesscheck=" urlencode($MM_referrer);
        
      header("Location: "$MM_restrictGoTo); 
        exit;
      }
      ?>
      <?php
      if (!function_exists("GetSQLValueString")) {
      function 
      GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
      {
        if (
      PHP_VERSION 6) {
          
      $theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
        }

        
      $theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

        switch (
      $theType) {
          case 
      "text":
            
      $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
            break;    
          case 
      "long":
          case 
      "int":
            
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
            break;
          case 
      "double":
            
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
            break;
          case 
      "date":
            
      $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
            break;
          case 
      "defined":
            
      $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
            break;
        }
        return 
      $theValue;
      }
      }

      $UserID $_POST['UserID'];
      $UserFName $_POST['UserFName'];
      $UserLName $_POST['UserLName'];
      $CarID $_POST['CarID'];
      $CarPlate $_POST['CarPlate'];

      mysql_select_db($database_SatDB$SatDB);
      $query_UserDB "SELECT * FROM `User`";
      $UserDB mysql_query($query_UserDB$SatDB) or die(mysql_error());
      $row_UserDB mysql_fetch_assoc($UserDB);
      $totalRows_UserDB mysql_num_rows($UserDB);

      mysql_select_db($database_SatDB$SatDB);
      $query_CarDB "SELECT * FROM CarDB";
      $CarDB mysql_query($query_CarDB$SatDB) or die(mysql_error());
      $row_CarDB mysql_fetch_assoc($CarDB);
      $totalRows_CarDB mysql_num_rows($CarDB);

      mysql_select_db($database_SatDB$SatDB);
      $query_TakeCarDB "SELECT * FROM TakeCarDB";
      $TakeCarDB mysql_query($query_TakeCarDB$SatDB) or die(mysql_error());
      $row_TakeCarDB mysql_fetch_assoc($TakeCarDB);
      $totalRows_TakeCarDB mysql_num_rows($TakeCarDB);

      mysql_select_db($database_SatDB$SatDB);
      $query_JobDB "SELECT * FROM Jobs ORDER BY AuftragID ASC";
      $JobDB mysql_query($query_JobDB$SatDB) or die(mysql_error());
      $row_JobDB mysql_fetch_assoc($JobDB);
      $totalRows_JobDB mysql_num_rows($JobDB);
      ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <link href="/CSS/Layout.css" rel="stylesheet" type="text/css" />
      <link href="/CSS/Menu.css" rel="stylesheet" type="text/css" />
      <link rel="stylesheet" href="styles.css"/>
      <link rel="stylesheet" href="popup.css" />
      <link rel="stylesheet" href="animate.css" />
      <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
      <script src="script.js"></script>
      <script src="popup.js"></script>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>San Andreas Trucking | Login</title>
      <link rel="stylesheet" href="bounceIn.css">

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>San Andreas Trucking</title>
      </head>

      <body>

      <div id="Holder">
      <div id="Header">
      </div>

      <div id="cssmenu">
          <ul>
              <li class="active"><a href="index.php">Home</a></li>
              <li><a href="#">Account</a>
              <ul>
                  <li class="has-sub"><a href="Login.php">Einloggen</a></li>
                  <li class="has-sub"><a href="Login.php">Registrieren</a></li>
                  <li class="has-sub"><a href="Login.php">Passwort vergessen</a></li>
                  
              </ul>
              </li>
          </ul>
      </div>


      <div id="Content">
      <?php

      echo $_SESSION[$row_UserDB['UserLevel']];
      ?>

          <div id="PageHeading">
            <h1>&nbsp;</h1>
            <h1 class="fadeOutDown">Firmenwagen beantragen</h1>
          </div>
          <div id="ContentLeft">
            <h2>!!!BETA!!!</h2>
            <h2>&nbsp;</h2>
            <h6>Your Message </h6>
      </div>
          <div id="ContentRight">
            <form id="TakeCarFormForm" name="TakeCarFormForm" method="post" action="">
              <table width="600" border="0">
                <tr>
                  <td width="98"><h6>Name:</h6></td>
                  <td width="492"><h6><?php echo $_SESSION['MM_Username']; ?> </h6></td>
                </tr>
                <tr>
                  <td><h6>Fahrzeug:</h6></td>
                  <td><h6><?php echo $_POST['CarName'?></h6></td>
                </tr>
                <tr>
                  <td><h6>Verwendung:</h6></td>
                  <td><table width="535" height="42" border="0">
                    <tr>
                      <td><h6>Auftrag:</h6>
                        <p>
                          <label>
                            <select name="TakeCarJobs" id="TakeCarJobs">
                              <option value="" <?php if (!(strcmp(""$row_JobDB['AuftragID']))) {echo "selected="selected"";} ?>>Bitte Auswählen</option>
                              <?php
      do {  
      ?>
                              <option value="<?php echo $row_JobDB['AuftragName']?>"<?php if (!(strcmp($row_JobDB['AuftragName'], $row_JobDB['AuftragID']))) {echo "selected="selected"";} ?>><?php echo $row_JobDB['AuftragName']?></option>
                              <?php
      } while ($row_JobDB mysql_fetch_assoc($JobDB));
        
      $rows mysql_num_rows($JobDB);
        if(
      $rows 0) {
            
      mysql_data_seek($JobDB0);
            
      $row_JobDB mysql_fetch_assoc($JobDB);
        }
      ?>
                            </select>
                          </label>
                        </p>
                        <h6>Auftragsbeschreibung:</h6>
                        <p>
                          <label>
                            <textarea name="JobDetail" cols="45" readonly="readonly" id="JobDetail"><?php echo $row_JobDB['AuftragDetail']; ?></textarea>
                          </label>
                        </p>
                        <p>&nbsp;</p></td>
                      <td><h6>Anderer grund:
                        </h6>
                        <p>&nbsp;</p></td>
                    </tr>
                  </table></td>
                </tr>
                <tr>
                  <td><h6>Kennzeichen:</h6></td>
                  <td><h6><?php echo $_POST['CarPlate']; ?></h6></td>
                </tr>
                <tr>
                  <td><h6>
                    <label>
                      <input type="submit" value="Fahrzeug beantragen" onclick="<a href="#test-popup" id="TakeCarFormButton">
                      
                    </label>
                  </h6></td>
                  <td><h6>&nbsp;</h6></td>
                </tr>
              </table>
            </form>
          </div>
      </div>

      <div id="Footer">
        </br>
        <table width="800" border="0" align="center">
          <tr>
            <td width="200" align="center" valign="middle"><h6><a href="Impressum.php">Impressum</a></h6></td>
            <td width="182" align="center" valign="middle"><h6><a href="Datenschutz.php">Datenschutzerklärung</a></h6></td>
            <td width="200" align="center" valign="middle"><h6><a href="Disclaimer.php">Disclaimer</a></h6></td>
            <td width="200" align="center" valign="middle"><h6><a href="Admin.php">Administration</a></h6></td>
          </tr>
        </table>
        <h6>&nbsp;</h6>
      </div>
      </div>
      </body>
      </html>
      <?php
      mysql_free_result
      ($UserDB);

      mysql_free_result($CarDB);

      mysql_free_result($TakeCarDB);

      mysql_free_result($JobDB);
      ?>

      Kommentar


      • #4
        Hallo,
        habs glaube nicht ganz verstanden:

        Select-Feld in dem der Auftrag ausgewählt werden kann, angezeigt wird darin der AuftragName.
        Textarea in dem zum ausgewählten Auftrag die Daten aus AuftragDetail angezeigt werden sollen.

        Soll das ganze ohne Neuladen der Seite passieren? Dann kannst du dich mit Ajax auseinandersetzen. Ist per jQuery auch nicht schwierig umzusetzen.

        - Erstmal PHP-Seitig ein kleines Script erstellen, dass prüft ob etwas per $_POST übergeben wurde, da wirst du die ID des Auftrags reinbekommen
        - In dem Skript führst du dann eine Abfrage zur Datenbank aus und holst dir die Details zu dem Auftrag
        - mit echo die Details ausgeben
        - fertig auf PHP-Seite, auf so etwas in der Art wird es hinaus laufen
        PHP-Code:
        if(isset($_POST['auftrag']) AND !is_array($_POST['auftrag'])){
            
        $db = new PDO($dsn$username$passwd$options);
            
        $stmt $db->prepare('SELECT details FROM auftragTabelle WHERE id = ?');
            
        $stmt->execute(array($_POST['auftrag']));
            
        $result $stmt->fetch();
            echo 
        $result;

        HTML und JavaScript:
        (jQuery einbinden würde ich empfehlen, ist viel einfacher damit)
        - Den Optionen aus dem Select-Feld die ID des Auftrags geben
        PHP-Code:
        <select name="auftrag">
            <option>Auftrag wählen</option>
            <?php foreach ($auftraege as $auftrag): ?>
            <option value="<?= $auftrag['id'?>">
                <?= $auftrag['name'?>
            </option>
            <?php endforeach; ?>
        </select>
        - Listener auf das Change-Event vom select-Feld setzen http://api.jquery.com/change/
        - Per Ajax die ausgewählte ID an dein PHP-Skript senden http://api.jquery.com/jquery.ajax/
        - Per Selektoren deine Textarea im HTML finden und ihm die Details aus dem AjaxCall geben http://api.jquery.com/val/
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          Ja, das Aktualisieren des TextFields soll ohne Aktualisierung der Seite statt finden.
          Leider verstehe ich den Code den du zuvor gepostet hast nicht so recht.

          Kommentar


          • #6
            An welcher Stelle hängst du denn?
            Der erste Schnipsel zeigt, wie du die ID aus dem Ajax-Aufruf entgegen nehmen kannst und damit eine Abfrage an die Datenbank durchführst. In diesem Beispiel mit PDO.
            Beim zweiten geht es ja nur darum das Select-Feld darzustellen.

            btw, gerade deinen Code gesehen:
            Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
            Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
            Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm
            Relax, you're doing fine.
            RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

            Kommentar


            • #7
              Nunja, ich habe vorgestern erst angefangen zu "Coden" und dann auch noch mit Adobe Dreamweaver.
              Also verstehen tue ich das nicht so recht. :/



              Kommentar


              • #8
                Naja, da hilft dann eigentlich nur ein paar Tutorials durchzuarbeiten, das was ich da gemacht habe ist gar nicht so kompliziert wenn du dir ein paar Minuten Zeit nimmst.
                Habs nochmal bisschen kommentiert.
                PHP-Code:
                /**
                 * Prüft ob im $_POST-array ein Index für 'auftrag' vorhanden ist
                 * Das Select-Feld aus deinem Formular hat den Namen 'auftrag', darüber musst du die Werte hier auch ansprechen
                 * 
                 * Zudem wird geprüft, ob auch wirklich nur ein Wert und kein Array geliefert wird, für den Umgang mit Arrays ist die folgende
                 * Verarbeitung nicht ausgelegt und müsste angepasst werden
                 */
                if(isset($_POST['auftrag']) AND !is_array($_POST['auftrag'])){
                    
                // Hier wird die Verbindung zur Datenbank per PDO aufgebaut
                    
                $db = new PDO('localhost''testuser''testpasswort');
                    
                /**
                     * Wir verwenden Prepared Statements, damit sichert man sich vor SQL-Injections ab
                     * Man schreibt seine Abfrage ganz normal, lässt aber den Parameter den man vom User bekommen hat
                     * frei und setzt stattdessen ein ? als Platzhalter
                     * 
                     * Die Struktur dieser Abfrage wird dann schon an die Datenbank gesendet und auf korrekte Syntax geprüft
                     * (+ passiert da anderes Zeug das jetzt nicht wichtig ist)
                     */
                    
                $stmt $db->prepare('SELECT details FROM auftragTabelle WHERE id = ?');
                    
                // Wir führen die Abfrage aus und geben ihr den Parameter mit, die ID aus dem Select-Feld
                    
                $stmt->execute(array($_POST['auftrag']));
                    
                // Wir fetchen das Ergebnis der Abfrage und erhalten ein assoziatives Array
                    
                $result $stmt->fetch(PDO::FETCH_ASSOC);
                    
                // Um mit dem Ergebnis wieder auf der HTML- und JavaScript-Seite arbeiten zu können, müssen wir es hier ausgeben
                    
                echo $result['details'];

                Zu PDO noch den Beitrag aus unserer Wissenssammlung: http://php-de.github.io/jumpto/pdo/
                Relax, you're doing fine.
                RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

                Kommentar


                • #9
                  Jetzt bin ich komplett durcheinander...

                  Kommentar


                  • #10
                    Kann mir vielleicht jemand via AnyDesk oder TeamViewer helfen?
                    Alleine kriege ich das nicht gebacken X(

                    Kommentar


                    • #11
                      Zitat von Derek Westbrook
                      Leider verstehe ich den Code den du zuvor gepostet hast nicht so recht.
                      ...
                      Jetzt bin ich komplett durcheinander
                      ...
                      Nunja, ich habe vorgestern erst angefangen zu "Coden" und dann auch noch mit Adobe Dreamweaver.
                      Also verstehen tue ich das nicht so recht. :/
                      ...
                      Kann mir vielleicht jemand via AnyDesk oder TeamViewer helfen?
                      Alleine kriege ich das nicht gebacken X(
                      Ich verschiebe das auf Grund dessen mal in die Scriptbösre, da kann dir in dem Ausmaß ev. besser geholfen werden. Hier ist ein Entwicklerforum wo es Hilfe zu Selbshilfe gibt, keine Fertiglösungen, vor allem in dem Umfang.

                      [MOD: Verschoben von PHP-Einsteiger]
                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Behoben Komplett neu angefangen fast ohne DreamWeaver (hat nur beim MySQL_ geholfen und ich habe es dann auf MySQLi_ umgeschrieben)

                        Kommentar

                        Lädt...
                        X