phpbar.de logo

Mailinglisten-Archive

[php] Datenübergabe

[php] Datenübergabe

Juri Smarschevski smj_(at)_intratools.de
Fri, 27 Oct 2000 11:01:03 +0200


> -----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