Jag håller på att konstruera en liten webshop till mitt bands hemsida. I administrationsverktyget vill jag lägga till följande funktion: Man lägger till poster via ett vanligt formulär. Om man väljer produkttyp "skiva" med en selectbox så ska sidan laddas om och de skivor som finns i vår diskografi listas i en ny selectbox så att ID-nummret för rätt skiva kan väljas och sen läggas till i tabellen i databasen som rör varorna i webshopen. Hej Buster Attans... Jag var rädd för att det vara Javascript som stod för lösningen. Det suger jag tyvärr fatalt på så det mesta du skrev ser ut som rena grekiskan för mig. Men jag ska göra ett försök eller sju.Formulär: ladda om vid val med selectbox
Nu är mitt problem att jag inte har en blek aning om hur detta ska gå till.Sv: Formulär: ladda om vid val med selectbox
Till att börja med så skall du lägga till onchange="myfunction();", i din "select"-tag.
<code>
<select id="whatstuff" onchange="myfunction();">
<option value="1">skriva</option>
<option value="2">sockor</option>
</select>
</code>
Sen kan du välja att antingen låta funktionen göra en submit på formuläret och se till att asp-sidan fattar att det är en omladdning av sidan så att du fyller i all information i alla textboxar etc, samt då fyller i den nya select-boxen med rätt grejor.
<script language="javascript">
function myfunction() {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.Form1;
} else {
theform = document.forms["Form1"];
}
theform.submit();
}
</script>
Eller så kan du faktisk låta ASP-sidan redan från början bygga upp ett javascript som ändrar innehållet på klientsidan.
<code>
<html>
<body>
<script language="javascript">
function reshow(listmain, listsub) {
sel = listmain.options[listmain.selectedIndex].value;
for (var i = listsub.length;i > 0;i--)
listsub.options[0] = null;
showlinks(sel, listsub);
// listsub.options[0].selected = true;
}
function showlinks(sel, listsub) {
if (sel == 'skivor') {
opt(listsub,'1','Fyra bugg och en coka cola');
opt(listsub,'2','Slight case of overbombing');
}
if (sel == 'sockor') {
opt(listsub,'1','Tub');
opt(listsub,'2','Elastan');
}
}
function opt(list,href,text) {
var optionName = new Option(text, href, false, false)
var length = list.length;
list.options[length] = optionName;
}
</script>
<form id="form1">
<select id="list1" onChange="reshow(list1,list2);">
<option value="ingenting">-- Välj stuff --</option>
<option value="skivor">Skivor</option>
<option value="sockor">Sockor</option>
</select>
<select id="list2" size="2"> </select>
</form>
</body>
</html>
</code>
Det är innehållet i funktionen "showlinks" som du behöver generera ifrån en databasen.
Jag vill nämna här också att det är ganska enkelt att göra den första varianten med att ladda om sidan i ASP.NET, man får ganska mycket av funktionaliteten gratis.
// MvH Björne
Sv:Formulär: ladda om vid val med selectbox
Tackar :)