2016-05-05 14 views
1

Ich bearbeite meine Drop-Downs mit mysql und php. Ich habe den Inhalt in einer Tabelle gespeichert. Ich rufe sie am Anfang einer Seite an, wo sie benötigt werden, und füge die Ergebnisse dort ein, wo sie benötigt werden. Ich mache es auf diese Weise, damit der Endbenutzer seine eigene Dropdown-Liste von einer Benutzeroberfläche aktualisieren kann. Es erspart mir auch, die blutigen Sachen wieder und wieder tippen zu müssen. Ich habe es bereits für eine Dropdown-Liste getan. Übliche Sache, wählen Sie eine Nummer usw. Arbeitet ein Vergnügen. Dieser neue ist für Worte. Ich weiß, dass die SQL die Daten von der DB erhält und die Drop-Down-Funktion tatsächlich herunterfällt, aber Sie können nichts auf der Seite sehen. Seitenquelle anzeigen zeigt mir, dass die Daten in der Seite sind. Es ist einfach zu sehen. Der Code für die Einbettung in die Seite entspricht exakt den nummerierten Dropdown-Menüs. Ich bin ratlos. Ich sollte darauf hinweisen, dass die Verwendung von Code zum Auffüllen der Dropdowns von jemandem in dieser Gruppe gelernt wurde. Für die ich sehr dankbar bin.Dropdown-Liste wird nicht angezeigt

//POPULATE RISK AREA 
$sql = "SELECT riskArea FROM tblriskarea ORDER BY riskArea ASC"; 
$result = $conn->query($sql); 
if (!$conn->query($sql)) { 
    echo "query failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 

$areaOptions = ""; 
while($row = $result->fetch_assoc()){ 
    $areaOptions .= '<option value="'. $row['riskArea'].'">'; 
} 

und der Code in der Tabelle zu zeigen, ist somit:

<select name="riskarea" style="width:100px" ><?php echo "$areaOptions"; ?></select></td> 

aber ich nichts. Hast du etwas vor?

+3

Sie zeigen den Text nicht, so dass die Option Werte nicht in Dropdown ausgewählt sind. Die erforderliche Änderung ist '$ areaOptions. = ' '; ' – Haridarshan

+0

@Haridarshan post als Antwort. –

Antwort

2

Zwei Fehler im Code

1) Ihre Verbindung variabel ist $conn nicht $mysqli SO Sie können Ihren Abfragefehler mit

überprüfen 210
if (!$conn->query($sql)) { 
echo "query failed: (" . $conn->errno . ") " . $conn->error; 
} 

2) Vergessen Sie den Text zu schreiben und schließen Sie die Option im Dropdown-Menü. Es wäre

$areaOptions = ""; 
while ($row = $result->fetch_assoc()) { 
    $areaOptions .= '<option value="' . $row['riskArea'] . '">"' . $row['riskArea'] . '"</option>'; 
} 
+0

danke dafür. Interessanterweise habe ich die Fehlerüberprüfung an anderer Stelle richtig gemacht. Cut and Paste wird Sie jedes Mal bekommen. –

+0

Sie sind herzlich willkommen! genießen!! – Saty

+0

Zusatzfrage. Ich habe jetzt den Code dafür in eine Konfigurationsdatei geschrieben und die Ausgabe an eine Sitzungsvariable ausgegeben, also lege diese Variable jetzt auf die Seiten wie benötigt. Das Problem, das ich habe, ist, dass ich auf einigen der Seiten Daten zum Füllen der Formulare abrufe, damit der Endbenutzer sie bei Bedarf ändern kann. Wenn ich die Drop-Downs mit dieser Methode bevölkere, scheint es nicht möglich zu sein, dass die bereits eingegebenen Daten SOWIE das dynamische Drop-Down angezeigt werden. Könnte unmöglich sein, wäre aber nett. –

2

Sie haben vergessen, die Option Tag abzuschließen:

$areaOptions = ""; 
while($row = $result->fetch_assoc()){ 
    $areaOptions .= '<option value="'.$row['riskArea'].'">'.$row['riskArea'].'</option>'; 
} 

In ausgewählten tag:

<select name="riskarea" style="width:100px" ><?php echo $areaOptions; ?></select></td> 
+0

Deine Lösung stimmt auch !! – Saty

2

Erforderliche Änderungen werden:

1) <option> Text wird nicht angezeigt.

2) <option> schließt nicht.

Corrected Code:

//POPULATE RISK AREA 
$sql = "SELECT riskArea FROM tblriskarea ORDER BY riskArea ASC"; 
$result = $conn->query($sql); 
if (!$conn->query($sql)) { 
    echo "query failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 
$areaOptions = ""; 
while($row = $result->fetch_assoc()){ 
    $areaOptions .= '<option value="'. $row['riskArea'].'">' . $row['riskArea'] . '</option>'; 
} 
+0

Korrigieren Sie, überprüfen Sie jedoch die Verbindungsvariable. Es ist "$ conn" nicht "$ mysqli" – Saty

1

Sie zeigen nicht den Text, so dass die Optionswerte in ausgewählten Dropdown nicht sichtbar sind.

$areaOptions .= '<option value="'. $row['riskArea'].'">'; 

diese ähnliche

$areaOptions .= '<option value="'. $row['riskArea'].'">.'$row['riskArea']'.</option>'; 
+0

Ihre Lösung in auch richtig !! – Saty

3

sollten Sie nicht HTML-End-Tag </option> gesetzt worden. Verwenden Sie den folgenden Code:

while($row = $result->fetch_assoc()){ 
    $areaOptions .= '<option value="' . $row['riskArea'] . '">"' . $row['riskArea'] . '"</option>'; 
} 
+0

Ihre Lösung stimmt auch !! – Saty