Anzeige

[JavaScript / PHP] Wert aus select ist leer

[JavaScript / PHP] Wert aus select ist leer | PSD-Tutorials.de

Erstellt von Drauka, 26.01.2010.

  1. Drauka

    Drauka Noch nicht viel geschrieben

    Dabei seit:
    18.05.2007
    Beiträge:
    29
    Geschlecht:
    männlich
    [JavaScript / PHP] Wert aus select ist leer
    Hallo zusammen.

    Ich habe ein etwas seltsames Problem. Ich habe eine Formular, in welchem sich ein Suchfeld befindet. Dieses Suchfeld befüllt abhängig von der Eingabe per JavaScript ein select-Feld mit Werten aus einer Datenbank.

    Entsprechende Stelle im Formular:

    PHP:
    1.  
    2. echo '<tr><td>Redaktion/Firma suchen:</td><td><input type="text" name="namenssuche" onkeyup="searchNames(this.value);" /></td></tr>';
    3.         echo '<tr><td>Auswahl Redaktion/Firma:</td><td><div id="erg_names"></div></td></tr>';
    4.  
    Das JavaScript:
    Code (Text):
    1.  
    2.             function searchNames(suchbegriff){
    3.             var xmlHttp = null;
    4.             // Mozilla, Opera, Safari sowie Internet Explorer 7
    5.             if (typeof XMLHttpRequest != 'undefined') {
    6.                 xmlHttp = new XMLHttpRequest();
    7.             }
    8.             if (!xmlHttp) {
    9.                 // Internet Explorer 6 und älter
    10.                 try {
    11.                     xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
    12.                 } catch(e) {
    13.                     try {
    14.                         xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
    15.                     } catch(e) {
    16.                         xmlHttp  = null;
    17.                     }
    18.                 }
    19.             }
    20.             // Wenn das Objekt erfolgreich erzeugt wurde            
    21.             if (xmlHttp) {
    22.                 var url = "suche6.php";
    23.                 var params = "suchbegriff="+suchbegriff;
    24.                
    25.                 xmlHttp.open("POST", url, true);
    26.                
    27.                 //Headerinformationen für den POST Request
    28.                 xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    29.                 xmlHttp.setRequestHeader("Content-length", params.length);
    30.                 xmlHttp.setRequestHeader("Connection", "close");                    
    31.            
    32.                 xmlHttp.onreadystatechange = function () {
    33.                     if (xmlHttp.readyState == 4) {
    34.                         // Zurückgeliefertes Ergebnis wird in den DIV "erg_names" geschrieben
    35.                         document.getElementById("erg_names").innerHTML = xmlHttp.responseText;
    36.                     }
    37.                 };                
    38.                 xmlHttp.send(params);
    39.             }            
    40.         }
    41.  
    Die Datei, welche das Select erstellt (suche6.php):
    PHP:
    1.  
    2. <?php
    3.  
    4. include("config.inc");
    5.  
    6. mysql_connect($server, $dbusername, $dbpassword) or die("Keine Datenbankverbindung möglich");
    7. mysql_select_db($db_name)or die("Die Datenbank existiert nicht");
    8.  
    9. if ($_POST["suchbegriff"]) {
    10.     $sb = $_POST["suchbegriff"];
    11.    
    12.     $sql_names = "SELECT * FROM firmen WHERE firma LIKE '%$sb%' OR nachname LIKE '%$sb%' OR vorname LIKE '%$sb%' ORDER BY firma";
    13.    
    14.    
    15.     $result_names = mysql_query($sql_names);
    16.     echo '<select name="firm">';
    17.     while ($row_names = mysql_fetch_array($result_names)) {
    18.         echo '<option value="'.$row_names[id].'">'.utf8_encode($row_names[firma]).' ('.utf8_encode($row_names[nachname]).' '.utf8_encode($row_names[vorname]).')</option>';
    19.     }
    20.     echo '</select>';
    21. }
    22.  
    23. ?>
    24.  
    Abgefragt wird nach dem Senden des Formulars dann mit
    Code (Text):
    1.  
    2. $firma = $_REQUEST['firm'];
    3.  
    Jedoch ist $firma leer.

    Ich habe es mit Firebug nachvollzogen, das JS funktioniert, sprich die Daten werden korrekt an den DIV übergeben, aber irgendwie bleibt beim Senden etwas hängen. Ich nutze an einer anderen Stelle die gleiche Technik und dort funktioniert es ohne Probleme. Die Werte des select werden dort problemlos übernommen. Ich weiß nicht, was hier nun anders sein soll. Vielleicht fällt jemandem von Euch etwas auf.

    Vielen Dank.
     
    #1      
  2. Chriss1987

    Chriss1987 me.drinkCoffee();

    Dabei seit:
    26.03.2006
    Beiträge:
    378
    Geschlecht:
    männlich
    Ort:
    Kirchhundem
    Kameratyp:
    Canon EOS 400D
    [JavaScript / PHP] Wert aus select ist leer
    AW: [JavaScript / PHP] Wert aus select ist leer

    Hi,

    Wie sieht denn die generierte Seite aus? Ist in dem Select denn was enthalten? Sitzen die <form></form>-Tags an den richtigen Stellen? Was zeigt
    PHP:
    1. print_r($_POST);
    Außerdemm sollte man die Felder nicht mit der Variable $_REQUEST, sondern mit $_POST oder $_GET abfragen (je nach Methode)...

    Schöne Grüße aus dem Sauerland!
    Chriss

    P.S.: mir fällt grad auf, dass du im Bereich
    Code (Text):
    1. //Headerinformationen für den POST Request
    2.                 xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    3.                 xmlHttp.setRequestHeader("Content-length", params.length);
    4.                 xmlHttp.setRequestHeader("Connection", "close");
    keine Parameter verschickst...
     
    Zuletzt bearbeitet: 26.01.2010
    #2      
  3. Drauka

    Drauka Noch nicht viel geschrieben

    Dabei seit:
    18.05.2007
    Beiträge:
    29
    Geschlecht:
    männlich
    [JavaScript / PHP] Wert aus select ist leer
    AW: [JavaScript / PHP] Wert aus select ist leer

    Hallo Chris,

    ja, in dem select ist etwas enthalten, das kann ich zwar nicht direkt im Quelltext, wohl aber mit Firebug prüfen, der jede Änderung anzeigt.
    Die Form-Tags sind auch an der richtigen Stelle.
    print_r($_POST) zeigt nur die anderen Werte des Formulars, firm fehlt.

    Ob $_REQUEST oder $_POST ist an dieser Stelle eigentlich egal, da das Ding nur auf einem internen Server läuft und von genau 2 Personen verwendet wird. Da an der einen oder andere Stelle auch Dinge per Link übergeben werden, ist mir REQUEST lieber, dann lauf ich da nicht Gefahr etwas zu verpassen. Es besteht außerdem keine Gefahr, dass jemand diese Sicherheitslücke ausnutzt.

    Das mit den Header-Informationen musst du mir kurz erklären, bitte. Ich gebe zu, dass der JS-Teil nicht auf meinem Mist gewachsen ist, sondern dass ich diesen aus einen Tutorial habe (ist schon ne Weile her, ich weiß nicht mehr genau woher). Dies ist 1 zu 1 übernommen und funktioniert an anderer Stelle eigentlich einwandfrei.

    Danke.
     
    #3      
  4. Drauka

    Drauka Noch nicht viel geschrieben

    Dabei seit:
    18.05.2007
    Beiträge:
    29
    Geschlecht:
    männlich
    [JavaScript / PHP] Wert aus select ist leer
    AW: [JavaScript / PHP] Wert aus select ist leer

    :motz: Ich bin doof :motz:

    Die Form-tags waren natürlich nicht an der richtigen Stelle. Ich gebs ganz ehrlich zu, ich wußte nicht, dass </table> nicht erst nach </form> darf, sondern, dass <form> die Tabelle umschließen muss. Scheinbar hab ich das bisher unbewußt richtig gemacht, diesmal leider nicht.
    Nun gehts.
    Danke! :)
     
    Zuletzt bearbeitet: 26.01.2010
    #4      
  5. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    [JavaScript / PHP] Wert aus select ist leer
    AW: [JavaScript / PHP] Wert aus select ist leer

    table nach form = <form><table>...</table></form>

    form tabelle umschließen = <form><table>...</table></form>

    Und was ist jetzt anders? :rolleyes:
     
    #5      
  6. Drauka

    Drauka Noch nicht viel geschrieben

    Dabei seit:
    18.05.2007
    Beiträge:
    29
    Geschlecht:
    männlich
    [JavaScript / PHP] Wert aus select ist leer
    AW: [JavaScript / PHP] Wert aus select ist leer

    na vorher war
    <table>
    <form>
    ...
    </form>
    </table>

    und nach der Änderung:

    <form>
    <table>
    ...
    </table>
    </form>

    Sorry, hatte mich schlecht ausgedrückt :D
     
    #6      
x
×
×