Datenübergabe von Selectfeld an Inputfeld!

next1

Mitglied
Hallo zusammen,
ich habe fogendes Script, welches Daten aus einer DB in ein Select/Optionsfeld ausliest...soweit so gut, funktioniert auch...

PHP:
<?php
include ("../db.inc.php");
$sql_statement="SELECT * FROM $tb_2 ORDER BY Ort ASC ";
$result=mysql_query($sql_statement);
$options = "";
echo "
<select size=\"27\" style=\"width:243px;border:0px;\">\n";
while ($ortplz = mysql_fetch_array ($result))
{
$option = "<option>".$ortplz[Ort].",".$ortplz[PLZ]."</option>";
echo $option;
}
echo "</select>\n";
?>

Nun wäre es für den späteren Anwender, sehr sinnvoll/hilfreich/konfortabel, wer er beim Anklicken eines Eintrages diesen autom. in einem darüberliegendem PHP-Script in die jeweiligen Textfelder einfügen könnte........
ich bekomme die Datenübergabe einfach nicht auf die Reihe....... vielleicht habt ihr eine Idee.......

Grüße
Dieter
 
Hi,

was meinst du mit "darüberliegendem PHP-Script"?

Grundsätzlich könnte man das Eingeben von Daten aus einem Form in ein anderes Form nach dem Klicken des Submit-Buttons so lösen, in dem man dem neuen Form die Werte mittels "value=" vorinitialisiert:

PHP:
<?php
$selectionValue = $_POST['selectionBox'];
?>
<input type="text" name="selectionBoxValue" value="<?php echo $selectionValue;?>"/>

Dann müsstest du deiner Selection natürlich einen Namen vergeben. Höchstwahrscheinlich ist das dein Problem? Notiere doch mal:

PHP:
echo "
<select name=\"selectionBox\" size=\"27\" style=\"width:243px;border:0px;\">\n";

Dann kommst du auch an die selektierten Werte.
 
Moin,

ich nehme mal an, du möchtest da ohne Neuladen auf Benutzereingaben reagieren...falls ja, benötigst du da Javascript.

Hier ein kleines Beispiel, wie es geht:
Code:
<input id="das_feld" value="halli">
<select onchange="document.getElementById('das_feld').value=this.options[this.selectedIndex].text">
<option>halli
<option>hallo
<option>hallöle
</select>
 
Hallo zusammen,
danke für eure Antworten und Anregungen, aber das ist nicht was ich mir vorgestellt hatte.............
ich hab das vorhanden PHP-Script dahingehend geändert, das ich die Abfrage für Ort und PLZ mit in das Formularscript eingefügt habe...das sieht dann jetzt folgendermaßen aus:
PHP:
<?php
include ("../db.inc.php");

-------Selectbox die über eine DB mit Inhalt gefüllt wird --------------------
$sql_statement="SELECT * FROM $tb_2 ORDER BY Ort ASC ";
$result=mysql_query($sql_statement);
$options = "";
echo "
<select size=\"27\" style=\"width:243px;border:0px;\" name=\"selectbox\">\n";
while ($selectbox = mysql_fetch_array ($result))
{
$option = "<option>".$selectbox[Ort].",&nbsp;&nbsp;".$selectbox[PLZ]."</option>";
echo $option;
}
echo "</select>\n";
------------------------------------------------------------------------------
------PHP-Script zum Ausfüllen und Eintragen der Daten in eine DB------------------
if (isset($_POST['submit'])) {
if ($_POST['Kunde']== '--') {
		echo "<font color=red>Geben Sie einen Kunden an!!<br>Oder m&ouml;chten Sie einen <font color=black><b><i>leeren</i></b></font> Datensatz speichern
usw. usw......
	} else {
	$_POST[Passwort] = md5 ($_POST["Passwort"]);
$sql = "INSERT INTO $tb (Hd_Nr, Passwort, usw, Datum)
VALUES
('$_POST[KdKrz]-$_POST[Hd_Nr]','$_POST[Passwort]',usw  now())";
	$result = mysql_query($sql);
	if ($result) {
		echo "<font color=green><b>Dateneingabe erfolgreich!!</b></font><br>
		} else {
		echo "<font color=red><b>Dateneingabe nicht erfolgreich!!</b></font>";
		}
	}
		echo "<div style=\"margin:10px 0px 0px 190px;width:350px;\"><table border=\"0\" cellspacing=\"3\" width=\"99%\"><tr><td width=\"50\">&nbsp;</td><td style=\"border:0px solid #999999;width:60px;\" align=\"center\"><a href='javascript:history.back()' ><input type=\"submit\" value=\"Zur&uuml;ck\"  id=\"hover\"></input></a></td><td>&nbsp;</td><td style=\"border:0px solid #999999;width:200px;\" align=\"center\"><a href='$_SERVER[PHP_SELF]'><input type=\"submit\" value=\"Neuen Datensatz eintragen!!\"  id=\"hover\"></input></a></td></tr></table></div>";
	} else {
echo <<<FORMULAR
<div style="float:right;">
<form action="{$_SERVER['PHP_SELF']}" method="post" name="entry">
<input type="hidden" name="Status" value="index">
<input type="hidden" name="UserIntern" value="$_SESSION[user_user_id]">
  <table width="529" align="center" cellpadding="0" cellspacing="2">
  <tr>
    <td width="110" width:"100">H&auml;ndler:<font size="2" font color="red" >*</font></td>
    <td colspan="3"><input name="Hd_Name" type="text" size="50" id=hd_adress></td>
  </tr>
  <tr>
    <td width:"100">Stra&szlig;e:<font size="2" font color="red" >*</font></td>
    <td colspan="3"><input name="Strasse" type="text" size="50" id=hd_adress></td>
  </tr>
  <tr>
    <td>PLZ:<font size="2" font color="red" >*</font></td>
    <td width="70"><input name="PLZ" type="text" size="10" maxlength="5" id=hd_adress></td>
    <td width="58"><div align="center">Ort:<font size="2" font color="red" >*</font></div></td>
    <td width="279"><input name="Ort" type="text" size="45" id=hd_adress value="$selectbox[Ort]"></td>
</tr></table>

usw. usw.

</form>
</div>
FORMULAR;
}
mysql_close($dp);
?>

Nun möchte ich die Daten die mir die Selectbox anzeigt (Ort, PLZ) per Klick in die entsprechenden Inputfelder ( als von Selectbox "Ort" zu Inputfeld "Ort" usw.) des Formulares übernehmen

Wie bekomme ich das hin alles was ich versucht haut nicht so richtig hin......

Danke für eure Mühe und Hilfe
Gruß
Dieter
 
Das kannst du, wenn du das Formular nicht neu laden lassen möchtest, nur mit Java-Script machen. Dazu musst du das onchange-Ereignis der Select-Box abfangen und verarbeiten:

PHP:
<script type="text/javascript">
    function splitAndFillInputFields(selBox)
    {
        var text = selBox[selBox.selectedIndex].innerHTML;
        var data = text.split(",");
        
        document.getElementById("hd_adress_plz").value = data[0];
        document.getElementById("hd_adress_ort").value = data[1];
    }
</script>

<?php
// ....
echo "
<select size=\"27\" style=\"width:243px;border:0px;\" name=\"selectbox\" onchange=\"splitAndFillInputFields(this);\">\n";

Das würde aber bedeuten, das du den Input-Feldern für PLZ und Ort eine <eindeutige> ID gibst (ich habe schon mal hd_adress_plz bzw -ort gewählt). Das solltest du ohnehin tun. HTML verzeiht es dir zwar, aber ist unsauber und kann früher oder später Probleme verursachen.
 
Hallo,
super danke für deine hilfe....das eröffnet ganz neue möglichkeiten, an die ich bis jetzt noch nicht gedacht hatte............


DANKE
Gruß
Dieter
 
Zurück