F filipbh Medlem sedan juli 2002 405 inlägg Frågan 2 juli 2008 22:12 #1 Hej...
Jag är inte helt insatt i javascript så jag skulle behöva lite hjälp av er.
Jag håller på med ett formulär där man bland annat kan välja vilket land man är i från. Är det Sverige så ska det komma upp en rullgardin med städer (som jag har i en php-fil). Är det något annat land kommer det upp en textruta där man själv får skriva in stad.
Hur gör jag det lättast med javascript? Jag började först i php eftersom allt annat är därifrån och då gjorde jag en onchange-funktion där sidan laddas om men då försvinner alla andra uppgifter man matat in, vilket jag inte vill.
Hänger ni med?
Så här ser grunden ut:
<?
require("live_country.php");
require("live_city.php");
?>
<form action="test2.php" method="post">
<select name="land">
<?while( $regg_land_data = array_shift( $countryArray ) ) {
if ($_POST['land'] == $regg_land_data) {
echo "<option selected>" . $regg_land_data . "</option>\n";
} else {
echo "<option>" . $regg_land_data . "</option>\n";
}
}
?>
</select>
<br><br>
<?
if($_POST['land']=='Sverige'){
?>
<select name="stad">
<?while( $regg_stad_data = array_shift( $cityArray ) ) {
if ($_POST['stad'] == $regg_stad_data) {
echo "<option selected>" . $regg_stad_data . "</option>\n";
} else {
echo "<option>" . $regg_stad_data . "</option>\n";
}
}
?>
</select>
<?
}
else{
?>
stad <input type="text" name="stad" value="<?=$_POST['stad'];?>"><br>
<?
}
?>
F filipbh Medlem sedan juli 2002 405 inlägg Är det så svårt att ingen kan hjälpa mig?
Jag har testat lite själv men får det inte att fungera. Så här ser det ut nu:
Javascriptet:
function choosecountry(e){
if (e.value == 'Sverige') {
document.write("visa städer");
// document.getElementById('landtest').value = "Rätt";
} else {
document.write("skriv in egen stad");
// document.getElementById('landtest').value = "Fel";
}
}
Formuläret:
<form action="test2.php" method="post">
<select name="country" onchange="choosecountry(this);">
<option>Välj land</option>
<?while( $regg_country_data = array_shift($countryArray) ) {
if ($_POST['country'] == $regg_country_data) {
echo "<option selected>" . $regg_country_data . "</option>\n";
} else {
echo "<option>" . $regg_country_data . "</option>\n";
}
}
?>
</select>
</form>
Ett testfält där resultatet* skrivs ut:
<input type="text" id="landtest" value="land?">
* Egentligen ska det vara antingen en text-ruta eller rullgardin och jag antar att det måste stå i javascriptet på något sätt.
Vad är fel?