Antworten auf deine Fragen:
Neues Thema erstellen

[JavaScript / PHP] Wert aus select ist leer

Drauka

Noch nicht viel geschrieben

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:
echo '<tr><td>Redaktion/Firma suchen:</td><td><input type="text" name="namenssuche" onkeyup="searchNames(this.value);" /></td></tr>';
        echo '<tr><td>Auswahl Redaktion/Firma:</td><td><div id="erg_names"></div></td></tr>';

Das JavaScript:
Code:
            function searchNames(suchbegriff){
            var xmlHttp = null;
            // Mozilla, Opera, Safari sowie Internet Explorer 7
            if (typeof XMLHttpRequest != 'undefined') {
                xmlHttp = new XMLHttpRequest();
            }
            if (!xmlHttp) {
                // Internet Explorer 6 und älter
                try {
                    xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
                } catch(e) {
                    try {
                        xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch(e) {
                        xmlHttp  = null;
                    }
                }
            }
            // Wenn das Objekt erfolgreich erzeugt wurde            
            if (xmlHttp) {
                var url = "suche6.php";
                var params = "suchbegriff="+suchbegriff;
                
                xmlHttp.open("POST", url, true);
                
                //Headerinformationen für den POST Request
                xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlHttp.setRequestHeader("Content-length", params.length);
                xmlHttp.setRequestHeader("Connection", "close");                    
            
                xmlHttp.onreadystatechange = function () {
                    if (xmlHttp.readyState == 4) {
                        // Zurückgeliefertes Ergebnis wird in den DIV "erg_names" geschrieben
                        document.getElementById("erg_names").innerHTML = xmlHttp.responseText;
                    }
                };                
                xmlHttp.send(params);
            }            
        }

Die Datei, welche das Select erstellt (suche6.php):
PHP:
<?php

include("config.inc");

mysql_connect($server, $dbusername, $dbpassword) or die("Keine Datenbankverbindung möglich");
mysql_select_db($db_name)or die("Die Datenbank existiert nicht");

if ($_POST["suchbegriff"]) {
    $sb = $_POST["suchbegriff"];
    
    $sql_names = "SELECT * FROM firmen WHERE firma LIKE '%$sb%' OR nachname LIKE '%$sb%' OR vorname LIKE '%$sb%' ORDER BY firma";
    
    
    $result_names = mysql_query($sql_names);
    echo '<select name="firm">';
    while ($row_names = mysql_fetch_array($result_names)) {
        echo '<option value="'.$row_names[id].'">'.utf8_encode($row_names[firma]).' ('.utf8_encode($row_names[nachname]).' '.utf8_encode($row_names[vorname]).')</option>';
    }
    echo '</select>';
}

mysql_close();
?>

Abgefragt wird nach dem Senden des Formulars dann mit
Code:
$firma = $_REQUEST['firm'];

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.
 

Chriss1987

me.drinkCoffee();

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:
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:
//Headerinformationen für den POST Request
                xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlHttp.setRequestHeader("Content-length", params.length);
                xmlHttp.setRequestHeader("Connection", "close");
keine Parameter verschickst...
 
Zuletzt bearbeitet:

Drauka

Noch nicht viel geschrieben

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.
 

Drauka

Noch nicht viel geschrieben

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:

Drauka

Noch nicht viel geschrieben

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
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben