Mailinglisten-Archive |
> -----Original Message----- > From: php-admin_(at)_php-center.de > [mailto:php-admin_(at)_php-center.de]On Behalf > Of myyear2000_(at)_gmx.de > > Hallo! Hi Hans, > Ich komme nochmals mit meinem bekannten Problem, dem Datenaustausch > zwischen PHP und JavaScript. Ganz allgemein sieht der Datenaustausch folgendermassen aus: Erster Aufruf der Seite - PHP bereitet HTML und JS Teil (Variablen und Funktionen) vor. Entsprechende JS-Events wie etwa <SELECT NAME='MySelect' SIZE='1' onChange='UpdateSelect()'> sollen selbstverstaendlich auch da sein. Nach dem Load der Seite, koennen einige Variablen von JS geandert werden. z.B. HTML: <form name='bla'> <input type='hidden' name='test' value='0'> ... </form> JS: document.bla.test.value = 15; Nach dem Submitten der Seite bekommt PHP diese Variable als $HTTP_POST_VARS['test'] mit dem Wert = 15. Kurz gesagt, fast alle HTML-Objekte innerhalb einer Form lassen sich auf die Art und Weise von JS aus aendern. Nun hat man die Whal entweder alle moeglichen JS-Funktionen (statisch) ins Skript zu pushen, oder eben JS-Funktionen so zu gestallten, dass diese mit dynamischen Werten (form-name, element-name, werte ....) arbeiten koennen. > Ich lese z.B. Kundendaten in ein Array mittels mysql_fetch_array() von > einer MySQL-Datenbank ein und stelle diese Daten in einem Formular > innerhalb > eines SELECT-Feldes zur Auswahl. > Ein Datensatz eines Kunden enthält 3 verschiedene > Ansprechpartner. Je nach > Auswahl eines Kundes sollen in einem anderen SELECT-Feld diese 3 > Ansprechpartner zur Auswahl stehen. > > Ich hoffe, dass ihr mir eine Lösung habt. eine fertige Loesung hat wahrscheinlich keine (und das waere ja auch nicht erwuenscht, oder ;-) ). Und die Loesung setzt gewisse JS-Kenntisse voraus. Eine moegliche Vorgehensweise: HTML (PHP): <form name='myform' action.... > <SELECT NAME='Kunde' SIZE='1' onChange='UpdateSelect()'> <OPTION VALUE='Kunde_1'>Kunde_1</OPTION> ..... </SELECT> <SELECT NAME='Partner' SIZE='1'> <OPTION VALUE='Partner_1'>Partner_1</OPTION> ..... </SELECT> </form> JS: function UpdateSelect() { if (document.myform.Kunde.options.selectedIndex == '-1') return; if (document.myform.Kunde.options [document.myform.Kunde.options.selectedIndex].value == 'Kunde_1) { document.myform.Partner.options[0]=new Option(); document.myform.Partner.options[0].value='Partner_1'; document.myform.Partner.options[0].text='Partner_1'; .... document.myform.Partner.options[N]=new Option(); document.myform.Partner.options[N].value='Partner_N'; document.myform.Partner.options[N].text='Partner_N'; } ..... if (document.myform.Kunde.options [document.myform.Kunde.options.selectedIndex].value == 'Kunde_N') { document.myform.Partner.options[0]=new Option(); document.myform.Partner.options[0].value='Partner_1'; document.myform.Partner.options[0].text='Partner_1'; .... document.myform.Partner.options[N]=new Option(); document.myform.Partner.options[N].value='Partner_N'; document.myform.Partner.options[N].text='Partner_N'; } } //function Das ist dann eine statische JS-Variante, das Generieren von moeglichen Kunde-Ansprechpartner Varianten soll von PHP aus kein Problem sein. Eventuell ist dann die HTML-Seite relativ dick, und sicherlich laesst sich das Problem eleganter loesen (z.B. mit JS-Arrays) ... was Du wahrscheinlich auch machen wirst ;-) Hoffe geholfen zu haben. Gruss, Juri
php::bar PHP Wiki - Listenarchive