S Steady Medlem sedan dec. 2004 225 inlägg Frågan 20 dec. 2004 09:41 #1 Hejsan!
Om vi säger att jag har en select
<select name="foo">
<option>Dell</option>
<option>Compaq</option>
osv...
</select>
När jag väljer ett alternativ i dropdownlistan så ska ett antal inputs fyllas med ett visst värde. ex för Dell.
<input type="text" name="ghz" value="2,4" />
<input type="text" name="ram" value="1024" />
Och för Compaq
<input type="text" name="ghz" value="1,3" />
<input type="text" name="ram" value="512" />
osv. Värdet som dessa inputs ska fyllas med har jag i databasen. Så jag antar att sidan måste laddas om varje gång man väljer ett nytt alternativ i dropdownlistan, detta är inga problem.
Tack på förhand
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Du kan lägga datat i en array och sen hämta datat därifrån onchange.
S Steady Medlem sedan dec. 2004 225 inlägg Tänkte i samma banor men eftersom jag inte kan ett dugg javascript så frågar jag här hur jag ska gå tillväga, eller om ni har en bra guide som visar hur man ska göra. :)
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Nåt att börja med.
<script>
var arrtext = "";
function window.onload()
{
var sel = document.getElementById("prod")
for (var i = 0;i<10;i++)
{
sel.options.add(new Option(i+" Text",i));
arrtext += i + "," + i + "|" + i*i + "," + i + "#"
}
}
function populateTextboxes(in_val)
{
if (in_val!=null && in_val!='')
{
var arr = arrtext.split("#");
var arrarr = arr[in_val].split("|");
document.getElementById("ghz").value=arrarr[0];
document.getElementById("ram").value=arrarr[1];
}
}
</script>
<select name="prod" id="prod" onchange="populateTextboxes(this.value)">
<option>Choose</option>
</select>
<br>
ghx: <input type="text" name="ghz" id="ghz"><br>
ram: <input type="text" name="ram" id="ram">
S Steady Medlem sedan dec. 2004 225 inlägg Har försökt att pilla fram och tillbaka, men får inte till det.
Vet inte hur jag ska skriva för att få in databasloopen.
/red Har kommit en bit på vägen, men det vill sig inte riktigt ändå.
<?
include('config.php');
$SQL = mysql_query("SELECT * FROM computer ORDER BY ID") or die (mysql_error());
?>
<script>
var arrtext = "";
function window.onload()
{
var sel = document.getElementById("prod")
for (var i = 0;i<1;i++)
{
<?
$i = 0;
while($row = mysql_fetch_array($SQL)) {
$i++;
?>
sel.options.add(new Option(<?=$i?>+" <?=$row['Dator']?>",<?=$i?>));
arrtext += "<?=$row[ID]?>" + "|" + "<?=$i?>" + "|" + "test3" + "#"
<?
}
?>
}
}
function populateTextboxes(in_val)
{
if (in_val!=null && in_val!='')
{
var arr = arrtext.split("#");
var arrarr = arr[in_val].split("|");
document.getElementById("ghz").value=arrarr[0];
document.getElementById("ram").value=arrarr[1];
document.getElementById("gfx").value=arrarr[2];
}
}
</script>
<select name="prod" id="prod" onchange="populateTextboxes(this.value)">
<option>Choose</option>
</select>
<br>
V. arm: <input type="text" name="ghz" id="ghz"><br>
H. arm: <input type="text" name="ram" id="ram"><br>
H. ben: <input type="text" name="gfx" id="gfx"><br>
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Hjälpte detta?
Kan inte php vidare bra.
<?
include('config.php');
$SQL = mysql_query("SELECT * FROM computer ORDER BY ID") or die (mysql_error());
?>
<script>
var arrtext = "";
function window.onload()
{
var sel = document.getElementById("prod")
<?
$i = 0;
while($row = mysql_fetch_array($SQL)) {
$i++;
?>
sel.options.add(new Option(<?=$i?>+" <?=$row['Dator']?>",<?=$i?> ));
arrtext += "<?=$row[ID]?>" + "|" + "<?=$i?>" + "|" + "test3" + "#"
<?
}
?>
}
function populateTextboxes(in_val)
{
if (in_val!=null && in_val!='')
{
var arr = arrtext.split("#");
var arrarr = arr[in_val].split("|");
document.getElementById("ghz").value=arrarr[0];
document.getElementById("ram").value=arrarr[1];
document.getElementById("gfx").value=arrarr[2];
}
}
</script>
<select name="prod" id="prod" onchange="populateTextboxes(this.value)">
<option>Choose</option>
</select>
<br>
V. arm: <input type="text" name="ghz" id="ghz"><br>
H. arm: <input type="text" name="ram" id="ram"><br>
H. ben: <input type="text" name="gfx" id="gfx"><br>
S Steady Medlem sedan dec. 2004 225 inlägg Den sista posten (dvs gfx) blir undefined, gjorde ingen skillnad.
P Peter S Medlem sedan dec. 2002 5 483 inlägg <script type="text/javascript">
function Comp(name, ghz, ram){
this.name = name;
this.ghz = ghz;
this.ram = ram;
}
var comps = [
new Comp("Dell", "2,4", 1024),
new Comp("Compaq", "1,3", 512)
];
function showInfo(obj){
var elms = obj.form.elements,
comp = comps[obj.selectedIndex];
elms["name"].value = comp.name;
elms["ghz"].value = comp.ghz;
elms["ram"].value = comp.ram;
}
</script>
<form>
<select onchange="showInfo(this)">
<option>Dell</option>
<option>Compaq</option>
</select>
<input type="text" name="name">
<input type="text" name="ghz">
<input type="text" name="ram">
</form>
:)
S Steady Medlem sedan dec. 2004 225 inlägg Kanonfint! Tack båda två och God jul :)