webForumDet fria alternativet

Ändra innehåll i formulär

JavaScript

1 svar · 396 visningar · startad av filipbh

Medlem sedan juli 2002405 inlägg
Frågan#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>
<?
}
?>
Medlem sedan juli 2002405 inlägg
#2

Ä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?

281 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
152 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)