Formular mit select tag und input Textfeld

Formular mit select tag und input Textfeld

am 26.09.2006 13:38:15 von Andreas Bauer

Hallo NG,
ich habe ein Formular mit einem select tag (Autornamen aus postgres
Datenbank),
mit dem mit einer Javascriptfunktion selectfillinput die nachfolgenden input
text Felder,
inputLastName und inputFirstName, mit dem Nach- und Vornamen
gefüllt werden sollen, also bei Klicken auf das selecttag, der Nach- und
Vorname in den zwei nachfolgenden input Feldern erscheinen sollen.
Der JS Funktionsaufruf durch
"document.FORMULAR.selectAuthorId.onchange = selectfillinput;"
klappt auch, nur es wird nicht der Nach- Vorname aus dem select tag
genommen,
sondern die Authorid von der postgres Datenbank. "selectAuthorId" ist
der Name des Select Tags. Mit der Funktion Htmlclass:getSelectTag, die das
tag zusammensetzt und deren regulären Ausdrücken komme ich überhaupt nicht
klar.
Die Tabelle in der Datenbank hat drei Spalten:
Autorid, Lastname, Firstname.
Das select tag selbst wird durch den php Code korrekt zusammengesetzt.
Hat vielleicht einer von Euch eine Idee, wie ich JS und PHP dazu kriege die
Authornamen anstatt deren ID aus der Datenbank zu nehmen?
Den Code habe ich unten angefügt.

Grüße
Andreas

name="FORMULAR" method="POST">

















htmlclass.php:
public static function getSelectTag($name , $options, $selected = 0)
{
$returnvalue = "\n";
echo ($returnvalue);

}

Der JS Code:


Re: Formular mit select tag und input Textfeld

am 26.09.2006 13:48:21 von Jens Riedel

Andreas Bauer wrote:

> Der JS Funktionsaufruf durch
> "document.FORMULAR.selectAuthorId.onchange = selectfillinput;"
> klappt auch, nur es wird nicht der Nach- Vorname aus dem select tag
> genommen,
> sondern die Authorid von der postgres Datenbank.

Damit hast du hier überhaupt kein PHP-Problem, sondern ein
Javascript-Problem.


> function selectfillinput(){
> if
> (document.FORMULAR.selectAuthorId.options[document.FORMULAR. selectAuthorId.selectedIndex].value
>
> != "z") {
> var fullname =
> document.FORMULAR.selectAuthorId.options[document.FORMULAR.s electAuthorId.selectedIndex].value;

....

Du suchst nicht die ID im value-Attribut, sondern den angezeigten Text
in der Selectbox. Also musst nicht options[...].value, sondern
options[...].text parsen.

Gruß,
Jens

--
Der Kluegere gibt nach - Eine traurige Wahrheit:
sie begruendet die Weltherrschaft der Dummen.
- Marie von Ebner-Eschenbach

Re: Formular mit select tag und input Textfeld

am 26.09.2006 13:58:25 von dev-null-use-reply-adress

Andreas Bauer schrieb:
> ich habe ein Formular mit einem select tag (Autornamen aus postgres Datenbank),
> mit dem mit einer Javascriptfunktion selectfillinput die nachfolgenden input
> text Felder, inputLastName und inputFirstName, mit dem Nach- und Vornamen
> gefüllt werden sollen, also bei Klicken auf das selecttag, der Nach- und
> Vorname in den zwei nachfolgenden input Feldern erscheinen sollen.
> Der JS Funktionsaufruf durch
> "document.FORMULAR.selectAuthorId.onchange = selectfillinput;"
> klappt auch, nur es wird nicht der Nach- Vorname aus dem select tag
> genommen, sondern die Authorid von der postgres Datenbank.

Ein reines Javascript-Problem und aus der Datenbank holt das JS auch
nix raus, sondern aus der Selectbox.

> Mit der Funktion Htmlclass:getSelectTag, die das
> tag zusammensetzt und deren regulären Ausdrücken komme ich überhaupt nicht
> klar.

Reguläre Ausdrücke sind da wo genau?

> Hat vielleicht einer von Euch eine Idee, wie ich JS und PHP dazu kriege die
> Authornamen anstatt deren ID aus der Datenbank zu nehmen?

Nochmal: PHP kann da garnichts machen.

> htmlclass.php:
> public static function getSelectTag($name , $options, $selected = 0)
> {
> $returnvalue = "

Autor:
("selectAuthorId", $DbMapper->readAuthorNames(),
$Book->getAuthorId());?>
Nachname:


Vorname: