Antworten auf deine Fragen:
Neues Thema erstellen

problem mit <select on change=

darthfly

Nicht mehr ganz neu hier

ich bin am verzweifeln und weiß nicht mehr weiter
<tr>
<td nowrap align=right> Strasse</td><td>:</td>
<td width=100%><input type="text" name="fromstrasse" size=25 maxlength=120 value="<?php echo $from_strasse; ?>" onchange="document.bewerberformular.fromplz.focus();"> Postleitzahl

<select name="fromplz" onchange="document.bewerberformular.fromort.value=".<?php echo $array_ort[2]; ?>.">;
<option value=" "> </option>;
<?php
while ($dsatz2 = mysql_fetch_assoc($resultplz)) {
$array_ort[]=$dsatz2['ort'];
if ($_POST['fromplz'] == $dsatz2['plz']) {
$text_string = ' selected="selected"';
} else {
$text_string = '';
}
echo '<option value="'. $dsatz2['plz'] .'"' . $text_string . '>' . $dsatz2['plz'] .' ' .$dsatz2['ort'] . ' </option>';
unset ($text_string);
}
echo '</select>';
var_dump($array_ort[2]);
?>
Ort:<input type="text" name="fromort" size=25 maxlength=120 value="<?php echo $from_ort; ?>" onchange="document.bewerberformular.fromberuf.focus();"></td>
</tr>

Es wird eine Postleitzahl mit ort aus einer DB ausgelesen und als auswahl in das Optionsfeld eingefügt.var_dump($array_ort[2]) gibt mir den richtigen ort aus.allerdings wird bei onchange NIX übertragen.Wenn ich statt .<?php echo $array_ort[2]; ?>. test eingebe,wird das wird das wort test an das textfeld übertragen.

Dieser Bereich
if ($_POST['fromplz'] == $dsatz2['plz']) {
$text_string = ' selected="selected"';
} else {
$text_string = '';
}
ist notwendig, da das ganze formular nach dem prinzip des Affenformulars aufgebaut ist, ohne klappt es nicht. Wenn ich allerdings es abänder zu

f ($_POST['fromplz'] == $dsatz2['plz']) {
$array_ort[]=$dsatz2['ort'];
$text_string = ' selected="selected"';
} else {
$text_string = '';
}
gibt mir Var_dump nur NULL aus. Die if schleife scheint immer nur den else zweig zu nehmen ist aber anscheinend doch wichtig.



Bitte um Hilfe
 

sokie

Mod | Web

AW: problem mit <select on change=

Bitte für Code die Codewerkzeuge "code" "php" und "html" benutzen.

allerdings wird bei onchange NIX übertragen.
klar.Wenn Dinge in einer Seite Event-basiert also "onIrgendwas" geschehen sollen, brauchst du javascript.

ist notwendig, da das ganze formular nach dem prinzip des Affenformulars aufgebaut ist,
was ist ein Affenformular?

Statt des screens wäre der tatsächlich produzierte Code interessant gewesen.
 

darthfly

Nicht mehr ganz neu hier

AW: problem mit <select on change=

Affenformular ? Wikipedia
wie kann ich mit javascript php variabeln ansprechen?
an dem onchange Event kann es nicht liegen und
document.bewerberformular.fromort.value
IST javascript und wird auch problemlos behandelt wenn ich das ganze SO eingebe:
<select name="fromplz" onchange="document.bewerberformular.fromort.value= "test">; Dann erhält das inputfeld den Wert :test. also daran liegt es nicht.
 

ProfBoom

Noch nicht viel geschrieben

AW: problem mit <select on change=

Korrigier mich wenn ich falsch liege, aber kann es sein, dass du $array_ort versuchst auszugeben bevor du es initialisierst? D.h. erst kommt dein onChange="..." und dann $array_ort[] = $dsatz2['ort'];
Dein var_dump($array_ort[2]) funktioniert, weil es erst danach kommt.

Verwendest du error_reporting(E_ALL)? Dann solltest du auch einen entsprechenden Hinweis im Logfile haben.
 

darthfly

Nicht mehr ganz neu hier

AW: problem mit <select on change=

Könnte es vlt. sein, das die lebensdauer des Arrays $array_ort auf die While schleife begrenzt ist? Das könnte ne Erklärung sein, aber normalerweise kommt das change event erst nachher, weil erst das selectFeld initiert und aufgebaut wird, und während dessen wird in der While Schleife das Array erzeugt. Das Event tritt doch erst in Kraft, wenn etwas geändert wird, wobei ein vorgeingestellter Wert, der hier nicht der Fall ist, das Change Event nicht auslöst.

hat eventuell jemand ne idee?
Folgendes ist der Fall. In einer DB sind in einer Tabelle 2 Werte gespeichert:
Postleitzahl und der dazu gehörige Ort:
Nunn soll die Postleitzahl zusammen mit dem ort ausgelesen werden und als Auswahlmöglichkeit in einem select feld angeboten werden. Wenn ein Eintrag ausgewählt wird soll folgendes passieren:
1. Die gewählte Postleitzahl soll in einer Varibalen gespeichert werden, um nachher Daten wieder in eine andere Tabelle der DB zu speichern.
2. Der Ort der zu der Postleitzahl gehört soll in einem anderen Input Feld angezeigt werden.
Ich weiß nicht mehr weiter.

ich habe die belegung des Arrays mit werten vorverlegt , vor das Formular. Dann geb ich VOR dem select Feld das Array mit var_dump aus. Es werden alle werte angezeigt. Und dennoch wird NIX übergeben.

Bitte 'Edit' beuntzen um Mehrfachposts zu vermeiden.
 
Zuletzt bearbeitet von einem Moderator:

ProfBoom

Noch nicht viel geschrieben

AW: problem mit <select on change=

Hast du Sokies Bitte um den Quelltext der Ausgabe überlesen?

Zu deinem Post:
Ich weiß nicht, ob es dir klar ist, deshalb erwähne ich es.
Das onChange-Event ist Javascript und wird auf dem PC ausgeführt, der die Website aufruft. $array_ort ist eine PHP-Variable und php läuft auf dem Server. Das onChange-Event wird also erst ausgeführt, wenn das PHP-Skript komplett durchlaufen und *beendet* ist!
Du kannst also keine PHP-Variable zur Laufzeit deines Skripts mit Javascript ändern.

Um den Ort einzutragen, kannst du dir eine Javascript-Funktion schreiben und dir den Wert basteln. Wenn eine Postleitzahl 5 Stellen hat (+1 Leerzeichen), dann brauchst du nur von dem String alle Zeichen ab der 6. Stelle zu nehmen. substr() leistet da gute Dienste.

Gleiches kannst du nach dem Absenden der Form in PHP machen um an die PLZ zu kommen.

PS: Statt zweimal hintereinander zu posten den Edit-Knopf benutzen.
 

darthfly

Nicht mehr ganz neu hier

AW: problem mit <select on change=

ich habe mir eine andere Lösung erarbeitet, nicht ganz so, wie
mir empfohlen hat, aber ähnlich.
1. das onchange ereignis übergibt den Wert des selectfeldes an eine javascript fuktion.
2. Diese schreibt den Wert z.B '22345' in ein input feld, welches auf hidden steht.
3. vor dem input feld ort öffne ich die DB mit folgender anweisung:
$sql = "SELECT ort FROM `postleitzahl` WHERE `plz`='".$from_s2 ."' ORDER BY `plz`";
$from_s2 enthält den Wert des versteckten feldes.
DA jede Postleitzahl als index nur 1 mal vorkommt , bekomme ich auch nur einen Wert.
und diesen Wert schreibe ich mit
$from_ort= $dsatzort['ort'];
in das Textfeld.
Es wird zwar erst dann rein geschrieben, wenn ich per submit das Formular abschicke, sollten aber felder noch nicht ausgefüllt sein, wird der ort auf jeden fall eingetragen.
Nicht ganz das was ich wollte aber fast. Trotzdem danke für eure Mühen.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.565
Beiträge
1.538.068
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben