12. april 2004 - 17:27
Der er
42 kommentarer og 1 løsning
Finde elementer
Hvorfor vil "document.getElementsByTagName("choice")[0].options[0]" ikke give mig option elementet under min select??? <FORM name="form" method="post" action=""> <SELECT NAME="choice" onChange="this.form.submit();"> <OPTION>hgjf zgjhgjzhgj</OPTION> <OPTION>dsfghhjh</OPTION> </SELECT> <input type="button" onclick='alert(document.getElementsByTagName("choice")[0].options[0].value);'> </FORM>
Annonceindlæg fra SuperOffice
12. april 2004 - 17:37
#1
Fordi tagName er select på din boks !-) Men sæt et id på, så er den fuldt kompatibel med IE5+, NS6+, Mozilla m.m.m. <FORM name="form" method="post" action=""> <SELECT NAME="choice" id="choice" onChange="this.form.submit();"> <OPTION>hgjf zgjhgjzhgj</OPTION> <OPTION>dsfghhjh</OPTION> </SELECT> <input type="button" onclick='alert(document.getElementById("choice").options[0].value);' value="Vis værdi med getElementById"> <input type="button" onclick='alert(this.form.choice.options[0].text);' value="Vis tekst med this.form"> </FORM> -- og din option har ikke en .value men en .text !o]
12. april 2004 - 17:42
#2
mange tak... svar == point
12. april 2004 - 17:43
#3
Velbekomme '-)
12. april 2004 - 17:43
#4
;O)
12. april 2004 - 18:13
#5
Jeg kan ikke få fat i den hvis jeg prøver samme i en iframe: <html> <head> <script type="text/javascript"> elm = document.getElementById("choice").options; for (i=0;i<elm.length;i++){ elm[i] = null; } <?php echo "sel2 = new Array("; echo "\""1|batman\","; echo "\""2|riben\""; echo ");"; ?> for (i=0;i<sel2.length;i++){ str = sel2[i].split("|") elm.options[i]= new Option(str[1],str[0]); } </script> </head> </html> Den får ikke fat i choice elementet... mangler jeg parent eller et andet fedt trick når det er i en iframe (f.eks. navnet på iframen)
12. april 2004 - 18:19
#6
Hvis du ikke er i samme window-objekt (og en iframe er et andet window-objekt end hoved-dokumentet !-), kan du ikke får fat i den uden at finde frem til frame-dokumentet: elm = window.IFRAMENAME.document.getElementById("choice").options; elm.length = 0;//skulle ligeså effektivt udrydde dine options !-)
12. april 2004 - 20:39
#7
Hmmm jeg får stadig ikke noget med over? Hovedfilen: <FORM name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <SELECT name="country" onchange="skjult.location = 'selectvalue.php?val='+this[this.selectedIndex].value;"> <?php $optionblock = makeDropDownSelectBox (database, retailers, country, retailerid, "Select country"); echo "$optionblock"; ?> </SELECT> <br> <SELECT NAME="choice" onChange="this.form.submit();"> <OPTION>Select city</OPTION> </SELECT> </FORM> <iframe name="skjult" style="height:0px;width:0px;border:0px;"></iframe> selectvalue.php <html> <head> <script type="text/javascript"> elm = window.skjult.document.getElementById("choice").options; for (i=0;i<elm.length;i++){ elm[i] = null; } <?php $sel = $_GET['val']; $query = mysql_query("SELECT town_city, retailerid FROM retailers WHERE country='$sel'"); echo "sel2 = new Array("; while($row = mysql_fetch_array($query)) { echo "\"".$row['retailerid']."|".$row['town_city']."\""; } echo ");"; ?> for (i=0;i<sel2.length;i++){ str = sel2[i].split("|") elm.options[i]= new Option(str[1],str[0]); } </script> </head> </html>
12. april 2004 - 21:01
#8
-- og det er vel en tavetosse, at du ikke har src="selectvalue.php" i iframe-tagget !-) Men den vej, så: elm = parent.document.getElementById("choice").options; OG !-) <SELECT NAME="choice" id="choice" onChange="this.form.submit();"> <OPTION>Select city</OPTION> </SELECT>
12. april 2004 - 21:03
#9
Hov, der var da lige noget andet: <script type="text/javascript"> elm = window.skjult.document.getElementById("choice"); for (i=0;i<elm.options.length;i++){ elm.options[i] = null; } Du kan jo ikke blande options-arrayet sammen med selve select-elementet !-)
12. april 2004 - 21:22
#10
Det vil stadig ikke lykkes -> <FORM name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <SELECT name="country" onchange="skjult.location = 'selectvalue.php?val='+this[this.selectedIndex].value;"> <?php $optionblock = makeDropDownSelectBox (sv_cmsbuilderdk, retailers, country, retailerid, "Select country"); echo "$optionblock"; ?> </SELECT> <br> <SELECT NAME="choice" id="choice" onChange="this.form.submit();"> <OPTION>Select city</OPTION> </SELECT> </FORM> <iframe name="skjult" src="selectvalue.php" style="height:0px;width:0px;border:0px;"></iframe> <html> <head> <script type="text/javascript"> elm = window.skjult.document.getElementById("choice"); for (i=0;i<elm.options.length;i++){ elm.options[i] = null; } <?php //$sel = $_GET['val']; //$query = mysql_query("SELECT town_city, retailerid FROM retailers WHERE country='$sel'"); echo "sel2 = new Array("; echo "\""1|roskilde\","; echo "\""2|greve\""; echo ");"; ?> for (i=0;i<sel2.length;i++){ str = sel2[i].split("|") elm.options[i]= new Option(str[1],str[0]); } </script> </head> </html>
12. april 2004 - 21:29
#11
Øv, jeg fik _ikke_ blandet begge rettelser sammen: elm = parent.document.getElementById("choice");
12. april 2004 - 21:42
#12
Jeg får stadig ikke mit array med over, her er output fra formen, <FORM name="form" method="post" action="/logic/wheretobuy/wheretobuy.php"> <SELECT name="country" onchange="skjult.location = 'selectvalue.php?val='+this[this.selectedIndex].value;"> <!-- Drop down box indhold --> <OPTION value="0" SELECTED>Select country</OPTION><OPTION value="1">Denmark</OPTION></SELECT> <br> <SELECT NAME="choice" id="choice" onChange="this.form.submit();"> <OPTION>Select city</OPTION> </SELECT> </FORM> <iframe name="skjult" src="selectvalue.php" style="height:0px;width:0px;border:0px;"></iframe>
12. april 2004 - 21:49
#13
Har du stadig udkommenteret dit database-opslag ?-) -- og prøv at sætte en alert(elm.length) ind i scriptet (efter initieringen !-)
12. april 2004 - 21:58
#14
Jeg ser ikke en alert(elm.length) da den ligger i iframen, og der er ingen database opslag elm = parent.document.getElementById("choice"); for (i=0;i<elm.options.length;i++){ elm.options[i] = null; } <?php echo "sel2 = new Array("; echo "\""1|batman\","; echo "\""2|robin\""; echo ");"; ?> vil først se at jeg får data med over.
12. april 2004 - 22:20
#15
Får du ikke alerts, fordi de ligger i en skjult iframe ?-) -- det gør jeg da !-) Er du sikker på at elementerne er skabt, når javascriptet afvikles, prøv: <body onload="if(skjult)skjult.data()"> i hoveddokumentet og i iframen: <script type="text/javascript"> function data(){ elm = window.skjult.document.getElementById("choice"); ... elm.options[i]= new Option(str[1],str[0]); } } </script>
12. april 2004 - 22:27
#16
Samme resultat, sker stadig intet :(
12. april 2004 - 22:42
#17
Får du alerts, når du indsætter en alert i koden ?-)
12. april 2004 - 22:44
#18
Prøv at sætte iframen til at være 'noget' i størrelse, så du kan se, at siden findes !-)
12. april 2004 - 22:45
#19
s***** det skal stadig være parent.document !-)
12. april 2004 - 22:52
#20
Hvis jeg indsætter: <script language="JavaScript"> alert("SADHASDADS"); </script> i hovedsiden giver det en alert, men hvis jeg indsætter den i iframen sker der intet!
12. april 2004 - 22:57
#21
Så tyder det på, at du ikke har fat i den rigtige sti eller noget, for jeg får da alerts, når jeg tester !-) Prøv at give iframen en størrelse ...
13. april 2004 - 07:05
#22
Jeg har prøvet det ene og det andet unden at få en alert, begge filer ligger i samme katalog så jeg kan ikke forstå hvad der sker, eller rettere hvad der ikke sker. Kan du ikke poste indholdet af de filer som der virker for dig, så jeg ved koden virker 100% før jeg forsætter med mine 2 filer her.
13. april 2004 - 19:46
#23
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>Tomt dokument</title>
</head>
<body onresize onload>
<iframe src="iframe.html" id="IFRAMEID"></iframe>
</body>
</html>
--------------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<title>iframe</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="søgeord adskilt af komma">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style/style.css">
<style type="text/css">
html,body{margin:0px;padding:0px;}
</style>
<script language="javascript" type="text/javascript">
function ifrHeight(){
var t=document.body.offsetHeight;
if(parent!=window)parent.document.getElementById('IFRAMEID').style.height=t+'px';
}
alert('hej')
</script>
</head>
<body onresize onload="ifrHeight()">
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>
13. april 2004 - 20:12
#24
Med din kode får jeg alert box hej + et textarea :)
13. april 2004 - 20:20
#25
Hvis jeg retter hovedsiden til min kode: <?PHP require_once("../../connections/dbconnect.php"); require($_SERVER["DOCUMENT_ROOT"] . "/admin/classes/form.class.php"); ?> <FORM name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <SELECT name="country" onchange="iframe.location='iframe.php?val='+this[this.selectedIndex].value"> <?php $optionblock = makeDropDownSelectBox (sv_cmsbuilderdk, retailers, country, retailerid, "Select country"); echo "$optionblock"; ?> </SELECT> <br> <SELECT NAME="choice" id="choice" onChange="this.form.submit();"> <OPTION>Select city</OPTION> </SELECT> </FORM> <!--<iframe name="window" src="selectvalue.php" style="height:0px;width:0px;border:0px;"></iframe>--> <iframe src="iframe.php" id="IFRAMEID"></iframe>
13. april 2004 - 20:20
#26
får jeg stadig en alert!
13. april 2004 - 20:24
#27
Så er der i hvert fald kontakt, som der åbenbart ikke var før !-) Så prøv at kopiere koden fra din selectvalue.php ind i iframe-dokumentet ...
13. april 2004 - 20:37
#28
echo "sel2 = new Array("; echo "\""1|batman\"","; echo "\""2|robin\""; echo ");"; Parse error i den linie med batman
13. april 2004 - 20:45
#29
Nu ser den sådan her ud men den virker stadig ikke: <html> <head> <title>iframe</title> <meta name="Generator" content="Stone's WebWriter 4"> <meta name="keywords" content="søgeord adskilt af komma"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="style/style.css"> <style type="text/css"> html,body{margin:0px;padding:0px;} </style> <script language="javascript" type="text/javascript"> function data(){ elm = window.skjult.document.getElementById("choice"); for (i=0;i<elm.options.length;i++){ elm.options[i] = null; } <?php echo "sel2 = new Array("; echo "\"1|batman\","; echo "\"2|robin\""; echo ");"; ?> for (i=0;i<sel2.length;i++){ str = sel2[i].split("|") elm.options[i]= new Option(str[1],str[0]); } } </script>
13. april 2004 - 21:00
#30
Har du også: </head> <body onload="data()"> </body> </html> -- og så skal du stadig huske: function data(){ elm = parent.document.getElementById("choice");
13. april 2004 - 21:09
#31
Nu ser den sådan her ud, jeg får en hej alert og textarea feltet er helt tomt, <html> <head> <title>iframe</title> <meta name="Generator" content="Stone's WebWriter 4"> <meta name="keywords" content="søgeord adskilt af komma"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="style/style.css"> <style type="text/css"> html,body{margin:0px;padding:0px;} </style> <script language="javascript" type="text/javascript"> function data(){ elm = parent.document.getElementById("choice"); for (i=0;i<elm.options.length;i++){ elm.options[i] = null; } <?php echo "sel2 = new Array("; echo "\"1|batman\","; echo "\"2|robin\""; echo ");"; ?> for (i=0;i<sel2.length;i++){ str = sel2[i].split("|") elm.options[i]= new Option(str[1],str[0]); } } alert('hej') </script> </head> <body onresize onload="ifrHeight()"> <br> <br> <br> <br> <br> <br> <br> <br> <br> </body> </html>
13. april 2004 - 21:12
#32
Faktisk får jeg en hej alert hver gang jeg ændre værdien i den første dropdown.
13. april 2004 - 21:17
#33
Det er iframen, ikke et text-area, prøv lige at udskifte med: I<br> F<br> R<br> A<br> M<br> E -- og det er jo helt fint, at du får hej'et, men udkommenter den, og sæt data()-funktionen på body: } } //alert('hej') </script> </head> <body onload="data()">
13. april 2004 - 21:37
#34
Så kan jeg se mit array i boksen, sel2 = new Array("1|batman","2|robin");
13. april 2004 - 21:56
#35
<html> <head> <title>iframe</title> <meta name="Generator" content="Stone's WebWriter 4"> <meta name="keywords" content="søgeord adskilt af komma"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" type="text/css" href="style/style.css"> <style type="text/css"> html,body{margin:0px;padding:0px;} </style> <script language="javascript" type="text/javascript"> function data(){ elm = parent.document.getElementById("choice"); for (i=0;i<elm.options.length;i++){ elm.options[i] = null; } <?php echo "sel2 = new Array("; echo "\"1|batman\","; echo "\"2|robin\""; echo ");"; ?> for (i=0;i<sel2.length;i++){ str = sel2[i].split("|") elm.options[i]= new Option(str[1],str[0]); } } //alert('hej') </script> </head> <body onload="data()"> I<br> F<br> R<br> A<br> M<br> E<br> <br> <br> </body> </html>
13. april 2004 - 22:19
#36
Nu får jeg batman og robin i min anden dropdown, det underlige er bare at hvis jeg slår mit database kald til (beholder batman og robin) så bliver boksen helt tom: <?php //$sel = $_GET['val']; //$query = mysql_query("SELECT town_city, retailerid FROM retailers WHERE country='$sel'"); echo "sel2 = new Array("; //while($row = mysql_fetch_array($query)) //{ echo "\"".$row['retailerid']."|".$row['town_city']."\","; //} echo "\"1|batman\","; echo "\"2|robin\""; echo ");"; ?>
13. april 2004 - 22:29
#37
Så prøv at sætte en alert ind after ?> !-) alert(sel2);
13. april 2004 - 22:52
#38
Den kan ikke forstå min php query, hvis denne linie bliver slået til: $query = mysql_query("SELECT town_city, retailerid FROM retailers WHERE country='$sel'"); så udebliver min alert?
13. april 2004 - 22:53
#39
Har checket SELECT town_city, retailerid FROM retailers WHERE country='Denmark' i phpadmin den virker som den skal.
13. april 2004 - 23:05
#40
Prøv at echo "$sel";
13. april 2004 - 23:24
#41
$sel er ok, den kommer fra dropdown på hovedsiden. <?php $query = mysql_query("SELECT town_city, retailerid FROM retailers WHERE country='Denmark'"); echo "sel2 = new Array("; while($row = mysql_fetch_array($query)) { echo "\"".$row['retailerid']."|".$row['town_city']."\","; } echo "\"1|batman\","; echo "\"2|robin\""; echo ");"; ?> men <? echo "$sel2"; ?> er helt tom og hverken batman eller robin bliver vist når jeg slår sql'en til ?
14. april 2004 - 17:30
#42
hehe det hjælper at åbne databasen :) Super mange tak for hjælpen!!!
14. april 2004 - 19:06
#43
-- og tak for points ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling