Facetious
Addicted
|
hi leute! das is die ur noob frage, aber ich komm voll nicht dahinter na gut .. ich hab in ein formular eine schöne combobox mit idnummern (dynamisch aus einer mysql-tabelle ausgelsen). gebunden an ein onChance ereignis dieser combobox, soll er jetzt in zwei vorhandene textboxen (vorname, zuname) den zur idnummer zugehörigen vornamen und zunamen reinschreiben. ich komm voll nicht dahinter, steh voll auf der leitung tia Facetious
|
dio
Here to stay
|
kopier mal rein, was du hast
|
Facetious
Addicted
|
<?
include('connect.php');
?>
<html>
<head>
<title>Daten bearbeiten</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="maroon">
<?
if(!isset($_POST['submit']))
{
?>
<form method="post" name="form1">
<table border = "0" bgcolor="black" width="50%" align="center">
<tr>
<td bgcolor="white" align="center" colspan="2"><b>Bearbeiten</b></td>
</tr>
<tr>
<td bgcolor="white">Katalognummer auswählen</td>
<td bgcolor="white"><select name="nr" size="1" onChange="javascript: getValue()"><option value=""></option>
[B]<?
$sql = "SELECT Katalognr FROM schueler";
if($query = mysql_query($sql, $verbindung))
{
while($result = mysql_fetch_array($query))
{
for($i = 0; $i<sizeof($result)-1; $i++)
echo "<option value=\"$result[$i]\">$result[$i]</option>\n";
}
}
?>[/B]
</select></td>
</tr>
<tr>
<td bgcolor="white">Vorname</td>
<td bgcolor="white"><input type="text" name="vname" class="input"></td>
</tr>
<tr>
<td bgcolor="white">Nachname</td>
<td bgcolor="white"><input type="text" name="nname" class="input" disabled></td>
</tr>
<tr>
<td bgcolor="white" colspan="2"><center><input type="submit" name="submit" value="Submit" class="button"></center></td>
</tr>
</table>
</form>
<?
}
else
{
if(($_POST['vname'] == "") || ($_POST['nname'] == ""))
{
echo '<script language="javascript">alert("Bitte alle Felder ausfüllen"); history.back();</script>';
}
else
}
?>
</body>
</html>
ich weiss .. mein stil ist nicht alzu gut .)
|
Ringding
Pilot
|
Ich würde nicht sagen, dass man bei 5 Codezeilen über Stil reden kann.
|
atrox
in fairy dust... I trust!
|
a) ohne nachladen: wenn in der dropdown nur die id drinnstehen soll,
brauchst du ein javascript lookup-feld. dh der client bekommt die
ganze tabelle (schülernummer, vor&nachname) als javascript-array, und
im 'onchange'-handler suchst du dann in dem array nach der
schülernummer und schreibst die anderen daten in die anzeige.
(minder geeignet, wenn man mehrere tausende einträge hat)
also zb generierst du:
Schueler = new Array(
new Array("Saku","Koivu", 39482304),
new Array("Martin","Rucinsky", 34802389),
new Array("Jeff","Hackett", 39823498),
new Array("Sheldon","Sourray", 87587343),
new Array("Richard","Zednik", 68798735), ... ));
oder du verwendest die schulernummer gleich als index:
schueler = new Array();
(..)
schueler[1234]=new Array("Saku","Koivu"),
schueler[1238]=new Array("Martin ","Rucinsky"),
schueler[1240]=new Array("Jeff ","Hackett"),
(...)
you got the idea, didn't you ?
b) mit nachladen: durch aussuchen der id im dropdown erzeugst du ein
submit() bzw schickst die id mit window.location=... an den server,
der dann eine veränderte seite mit den richtigen werten zurückgibt.
c) onChange="java script: getValue()"
^^^^^^^^^^^^^--- remove
d) for($i = 0; $i<sizeof($result)-1; $i++)
lösungshinweis:
for ($i=0; $i<1; $i++) {
for ($j=0; $j<1; $j++) {
for ($k=0; $k<1; $k++) {
do_something_once(__in_a_fancy_way);
}
}
}
e) if(!isset($_POST['submit']))
(...)
<input type="submit" name="submit" value="Submit"
wenn jemand das formular mit der [enter] taste abschickt, statt mit
dem submit-button, wird dein script es nicht erkennen:
lösungshinweis: <input type=hidden ...
|
Facetious
Addicted
|
hi! thx für die vielen lösungsvorschläge
ich hab ein paar fragen dazu!
zu b) wie erzeuge ich so ein submit?? ..
und zu e) was meinst bewirkt es wenn ich ein hidden element verwende?
thx Facetious
|
Facetious
Addicted
|
hi! thx für die vielen lösungsvorschläge
ich hab ein paar fragen dazu!
zu b) wie erzeuge ich so ein submit?? ..
und zu e) was bewirkt es wenn ich ein hidden element verwende?
thx Facetious
// sorry für doppelpost
|
mat
AdministratorLegends never die
|
1.) window.location.replace('whatev4rjouwant')
2.) wenn du innerhalb deines forms ein hidden feld hast, dann wird dieses beim abschliessen des formulars übergeben. wenn du das formular allerdings zum 1. mal öffnest, dann is dieser wert noch nicht definiert. <form ...>
<?php
if (!isset($bFormwandler))
{
//..
}
?>
<input type="hidden" name="bFormwandler" value="egal">
</form>
|
Facetious
Addicted
|
1.)
window.location.replace('whatev4rjouwant')
ok.. das mit dem hidden element check ich, aber window.location.replace ich mein .. er sollte beim onchange ereignis den value zum server übertragen, damit ich dann die textboxen füllen kann... is das damit gemeint? sorry .. bin ein bisschen schwer von begriff Facetious
|
gue
Addicted
|
ich mein .. er sollte beim onchange ereignis den value zum server übertragen, damit ich dann die textboxen füllen kann... Das geht IMHO nicht so, wie du es dir vorstellst. Du kannst bei einem onChange Ereignis aber z.B. eine JavaScript Funktion aufrufen, die die URL (also den HTTP-GET Request) verändert, indem es Parameter hinzufügt o.ä. <script language="text/javascript">
<!--
function formSubmit() {
form = document.forms[0]; // bzw. statt 0 die wievielte Form es auf deinem Dokument ist
url = document.URL;
value = getFieldValue (form.name, "select");
url = url + "&name=" + value;
// bzw. "?name="
form.action = url;
form.submit();
}
//-->
</script>
<form action="">
<select name="name" onChange="formSubmit()">
<option>Name 1</option>
<option>Name 2</option>
// ...
</select>
<input type="hidden" name="nameselected">
</form>
<?php
if (isset ($HTTP_POST_VARS['nameselected'])) {
// name selektiert...
$name = $HTTP_GET_VARS['name'];
// hier dann db queries machen
// wie z.B: "SELECT parents FROM users WHERE name='$name';"
// und aus dem result fetchen
echo "Eltern: ".$parents;
}
?>
So oder so ähnlich müssts funktionieren
|
atrox
in fairy dust... I trust!
|
ja, so meinte ich es: window.location verändern, oder document.formname.submit(); letzteres geht natürlich nur, wenn das form sonst nichts macht, oder wenn ich die onchange-requests irgendwie kennzeichne (zb durch umsetzen des hidden-fields)
|