Hallo,
ich hab ein kleines Problem.
ich erzeuge dynamisch ein Dropdown-Menü aus Werten einer mysql-Datenbank. In der While-Schleife wird zugleich ein javascript-Code von php erzeugt, der später ein Array füllen soll mit den gleichen Werten aus der dB. Nun habe ich ein Problem, wenn der ausgelesene Wert aus der DB ein mehrzeiliger String ist und ich diesen dann im Funktionsaufruf des Javascript-Codes übergeben will.
Mit einem Beispiel wird es verständlicher, hoffe ich:
Der mit php erzeugte Javascript-Code sieht so aus:
produkte_db(1560, '0.00','voll','','');
produkte_db(109, '50.00','voll','60 Minuten','bstd');
produkte_db(1540, '11.40','voll','zeile1
zeile2
zeile3','i30');
... die letzte Anweisung führt dann im browser zu Fehlern verständlicherweise. Dieser bemängelt, dass die Zeichenfolgekonstante nicht abgeschlossen wird.
korrekt müsste dieser letzte Aufruf so aussehen:
produkte_db(1540, '11.40','voll','zeile1 \n zeile2 \n zeile3','i30');
oder auch so:
produkte_db(1540, '11.40','voll','zeile1 <br/>zeile2 <br/> zeile3','i30');
Aber ich weiß nicht, wie ich den Parameter bearbeiten muss, dass er in eine Zeile geschrieben wird. nl2br führen auch nur dazu, dass zusätzlich <br/> eingefügt wird, aber der javascript-Code bleibt an dieser Stelle trotzdem mehrzeilig.
der code:
Die Befüllung des Dropdown - Menüs:
produkte_db ist ein Funktionsaufruf in Javscript, innerhalb der Funktion werden dann die übergegeben Parameter in ein Array geschrieben sollen...
Hat jemand einen Tipp für mich?
Gruß + Dank
lizzy
ich hab ein kleines Problem.
ich erzeuge dynamisch ein Dropdown-Menü aus Werten einer mysql-Datenbank. In der While-Schleife wird zugleich ein javascript-Code von php erzeugt, der später ein Array füllen soll mit den gleichen Werten aus der dB. Nun habe ich ein Problem, wenn der ausgelesene Wert aus der DB ein mehrzeiliger String ist und ich diesen dann im Funktionsaufruf des Javascript-Codes übergeben will.
Mit einem Beispiel wird es verständlicher, hoffe ich:
Der mit php erzeugte Javascript-Code sieht so aus:
produkte_db(1560, '0.00','voll','','');
produkte_db(109, '50.00','voll','60 Minuten','bstd');
produkte_db(1540, '11.40','voll','zeile1
zeile2
zeile3','i30');
... die letzte Anweisung führt dann im browser zu Fehlern verständlicherweise. Dieser bemängelt, dass die Zeichenfolgekonstante nicht abgeschlossen wird.
korrekt müsste dieser letzte Aufruf so aussehen:
produkte_db(1540, '11.40','voll','zeile1 \n zeile2 \n zeile3','i30');
oder auch so:
produkte_db(1540, '11.40','voll','zeile1 <br/>zeile2 <br/> zeile3','i30');
Aber ich weiß nicht, wie ich den Parameter bearbeiten muss, dass er in eine Zeile geschrieben wird. nl2br führen auch nur dazu, dass zusätzlich <br/> eingefügt wird, aber der javascript-Code bleibt an dieser Stelle trotzdem mehrzeilig.
der code:
Die Befüllung des Dropdown - Menüs:
PHP-Code:
while ($result = mysql_fetch_row($erg){
....
// der String mit dem javascript-Code wird erzeugt:
$jscode .="produkte_db($id, '$result[2]','$result[3]','$result[4]','$result[5]');\n";
?><option value='<?=$id?>'><?=$result[2]?></option><?
}//end while
....<?=$jscode?>
Hat jemand einen Tipp für mich?
Gruß + Dank
lizzy
Kommentar