Avatar billede basicq Nybegynder
09. september 2003 - 09:42 Der er 14 kommentarer og
1 løsning

OnChange og iframe

jeg har den her kode <select class="txtboxfield" name="country" onchange="parent.main.document.region.location.reload();">

Det den skal gøre at at opdater en iframe (name=region) og det som man vælger i select menuen skal den sende over til den fil som bliver opdateret i iframen. Altså vælger man Danmark skal den sende Danmark over til filen i iframen.

Håber nogen kan hjælpe.
Avatar billede bamzen Nybegynder
09. september 2003 - 09:58 #1
jeg har den her kode <select class="txtboxfield" name="country" onchange="parent.main.document.region.location.reload();">


har du prøvet med

<select class="txtboxfield" name="country" onchange="parent.main.document.region.location.href=parent.main.document.region.location+"?country="+this.options[this.selectedIndex].value;">

så smider den værdien med som en parameter der hedder country

Den skulle desuden tage den url som iframen allerede har, men bare erstatte den med iframens url + "?country=" + den valgte værdi
Avatar billede basicq Nybegynder
09. september 2003 - 10:04 #2
Den opdater ikke iframen
Avatar billede basicq Nybegynder
09. september 2003 - 10:06 #3
Jeg har gjordt sådan her nu, men uden held.

<select class="txtboxfield" name="country" onchange="parent.main.document.region.location.href=parent.main.document.region.location+"?country="+this.options[this.selectedIndex].value;">
Avatar billede bamzen Nybegynder
09. september 2003 - 10:12 #4
kan jeg se hele siden???

eventuelt kan du prøve at skifte value til text
Avatar billede basicq Nybegynder
09. september 2003 - 10:14 #5
jeg prøver lige at skifte value hvis det ikke virker så poster jeg noget mere kode.
Avatar billede basicq Nybegynder
09. september 2003 - 10:20 #6
Det virker med en anden value, men hvis jeg nu først vælger USA og det er jo forkert da jeg er fra Danmark, så vælger jeg Danmark på ny og så virker det ikke for så bliver begge variabler overført. Kan du også hjælpe med det.
Avatar billede basicq Nybegynder
09. september 2003 - 10:33 #7
Og det er kun den sidste valgt variable som skal bruges i iframen.
Avatar billede bamzen Nybegynder
09. september 2003 - 10:34 #8
det ville være en HEL del lettere, hvis jeg så hele koden så jeg kunne paste det i en editor og teste det af.
Avatar billede basicq Nybegynder
09. september 2003 - 10:35 #9
ok kommer nu
Avatar billede basicq Nybegynder
09. september 2003 - 10:39 #10
Det her er hvor man vælger land.

<tr><td align="right"><strong>Country:</strong></td><td><select class="txtboxfield" name="country" onchange=parent.main.document.text.location.href=parent.main.document.text.location+"?country="+this.options[this.selectedIndex].value>
<?php
$open = dbconnect($smsdb);
$sql = "SELECT name FROM country ORDER BY name";
$result = mysql_query($sql);
   
if (!$result) {
    error("A user database error has occured");
}
if(isset($country) || $country == ""){
    echo("<option value=\"\" selected>Select country</option>");
}
echo("<option value=\"\" selected>Select country</option>");
while($row = mysql_fetch_row($result)){
    if(isset($country)){
        if($row[0] == $country){
            echo("<option value=\"$row[0]\">$row[0]</option>\n");
        } else {
            echo("<option value=\"$row[0]\">$row[0]</option>\n");
        }
    } else {   
        echo("<option value=\"$row[0]\">$row[0]</option>\n");
    }
}
dbclose($open);
?>
</select>
</td></tr>

Det her er det som er i iframen. hvor man vælger region. og det bliver fundet ved den variable som bliver overført fra overstående kode ($country).

$sql = "SELECT areaname
        FROM state, country
        WHERE state.code = country.code AND country.name = '$country'
        ORDER BY areaname";
$result = mysql_query($sql);

if (!$result) {
    error("A user database error has occured");
}
$row = mysql_fetch_row($result);

echo("<select class=\"txtboxfield\" name=\"region\">");
echo("<option value=\"\" selected>Select Region</option>\n");
if($row[0]==""){
echo("<input type=hidden name=\"region\" value=\"none\">\n");
} else {
    //echo("<tr><td align=\"right\"><strong>Region:</strong></td><td>\n");
//    echo("<select class=\"txtboxfield\" name=\"region\">");
//    echo("<option value=\"\" selected>Select Region</option>\n");
    echo("<option value=\"$row[0]\">$row[0]</option>\n");
    while($row = mysql_fetch_row($result)){
        echo("<option value=\"$row[0]\">$row[0]</option>\n");
    }
    echo("</select></td></tr>\n");
}
Avatar billede bamzen Nybegynder
09. september 2003 - 10:43 #11
Prøv dette.....


<script type="text/javascript">

function chanceFrame(val,frm){

tmp = frm.href
tmp2 = frm.search
if(tmp.indexOf(tmp2)>-1){
tmp = tmp.substr(0,tmp.indexOf(tmp2))
}
frm.location.href=tmp+"?"+val
}

</script>


<tr><td align="right"><strong>Country:</strong></td><td><select class="txtboxfield" name="country" onchange=changeFrame(this.options[this.selectedIndex].value,parent.main.document.text)>
<?php
$open = dbconnect($smsdb);
$sql = "SELECT name FROM country ORDER BY name";
$result = mysql_query($sql);
   
if (!$result) {
    error("A user database error has occured");
}
if(isset($country) || $country == ""){
    echo("<option value=\"\" selected>Select country</option>");
}
echo("<option value=\"\" selected>Select country</option>");
while($row = mysql_fetch_row($result)){
    if(isset($country)){
        if($row[0] == $country){
            echo("<option value=\"$row[0]\">$row[0]</option>\n");
        } else {
            echo("<option value=\"$row[0]\">$row[0]</option>\n");
        }
    } else {   
        echo("<option value=\"$row[0]\">$row[0]</option>\n");
    }
}
dbclose($open);
?>
</select>
</td></tr>

Det her er det som er i iframen. hvor man vælger region. og det bliver fundet ved den variable som bliver overført fra overstående kode ($country).

$sql = "SELECT areaname
        FROM state, country
        WHERE state.code = country.code AND country.name = '$country'
        ORDER BY areaname";
$result = mysql_query($sql);

if (!$result) {
    error("A user database error has occured");
}
$row = mysql_fetch_row($result);

echo("<select class=\"txtboxfield\" name=\"region\">");
echo("<option value=\"\" selected>Select Region</option>\n");
if($row[0]==""){
echo("<input type=hidden name=\"region\" value=\"none\">\n");
} else {
    //echo("<tr><td align=\"right\"><strong>Region:</strong></td><td>\n");
//    echo("<select class=\"txtboxfield\" name=\"region\">");
//    echo("<option value=\"\" selected>Select Region</option>\n");
    echo("<option value=\"$row[0]\">$row[0]</option>\n");
    while($row = mysql_fetch_row($result)){
        echo("<option value=\"$row[0]\">$row[0]</option>\n");
    }
    echo("</select></td></tr>\n");
}
Avatar billede bamzen Nybegynder
09. september 2003 - 10:45 #12
Ups, lavede en fejl i min funktion

<script type="text/javascript">

function chanceFrame(val,frm){

tmp = frm.location.href
tmp2 = frm.location.search
if(tmp.indexOf(tmp2)>-1){
tmp = tmp.substr(0,tmp.indexOf(tmp2))
}
frm.location.href=tmp+"?"+val
}

</script>
Avatar billede basicq Nybegynder
09. september 2003 - 10:52 #13
Ok jeg prøver, men typisk nu kan jeg ikke logge på serveren og kan ikke få fat i supporteren. Så jeg må vente med at teste det men jeg vender tilbage når jeg kommer igennem engang. Jeg tager i skole nu så det bliver først i aften eller i morgen aften. Men jeg takker for nu 1000 tak for hjælpen for nu.
Avatar billede basicq Nybegynder
09. september 2003 - 18:08 #14
Takker for din hjælp... Fandt ud af det.
Avatar billede bamzen Nybegynder
09. september 2003 - 19:09 #15
det var godt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester