Integer vergelijken en var naar selectbox

Status
Niet open voor verdere reacties.

Marinaio

Gebruiker
Lid geworden
21 sep 2007
Berichten
5
Beste mensen,

Ik ben bezig met een scriptje. Ik heb een variabele (een coordinaat van googlemaps) en die trek ik uit elkaar. Ik hou voor 't gemak alleen de eerste 2 getallen over. Deze staan in de variabele lgraden. Deze kan positief of negatief zijn.

even een php voorbeeldje, dit werkt wel in de vergelijking

PHP:
<?php
$var = -0.1;
if($var >= 0){
	echo 'o';
}else{
	echo 'w';
}
//resultaat = w
?>

Nu wil ik dit in JavaScript, en dan wil ik de waarde O of W, geselecteerd krijgen in mijn select list.

Code:
	var lengte = "";

		if(lgraden >= 0){
			var lengte = "0";
		}else{
			var lengte = "W";
		}


	//en om de waarde weg te schrijven naar selectbox

	document.getElementById("l").value =  lengte;

en dan hier mee weergeven
HTML:
	<select name="l" id="l" class="inputbox">
		<option></option>
        	<option>O</option>
		<option>W</option>
	  </select>

Het eerste dat fout gaat is dat de vergelijking nooit goed is. Wanneer lgraden kleiner is dan 0 moet var lengte dus W worden. Dat is nu niet het geval, hij blijft ALTIJD west.

Wie kan hier een oplossing voor geven? Dan kan ik daarna wel weer verder pielen
 
Het was niet de vergelijking, die werkt wel. LAleen het veranderen van de select die klopt niet. Daarnaast moet dit plaatsvinden nadat de selectbox op het scherm staat, anders kan hij deze niet vinden. Je kan dit ook veranderen door een functie van te maken en deze aan te toepen bij het laden van de pagina (<body onload="">).

Zoiets moet wel werken:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	
</head>
<body>

<form name="form">
	<select name="l" id="l" class="inputbox">
		<option value=""></option>
        	<option value="O">O</option>
		<option value="W">W</option>
	  </select>
</form>
<script language='javascript' type='text/javascript'>
<!--
var lgraden = -1;
var lengte = "";

if(lgraden >= 0){
	lengte = "O";
}else{
	lengte = "W";
}

var selectbox = document.getElementById('l');
for(i = 0; i < selectbox.length; i++)
{
	if(selectbox[i].value == lengte)
		selectbox.selectedIndex = i;
}
//-->
</script>

</body>
</html>
 
Kan met één zin: :)
document.f.l.selectedIndex = (lgraden >= 0 ? 1 : 2);
PHP:
<form name="f">
 <select name="l" class="inputbox">
  <option value="" selected>-</option>
  <option value="oost">O</option>
  <option value="west">W</option>
 </select>
</form>
<script type="text/javascript">
 var lgraden = prompt('lgraden?',0)

 document.f.l.selectedIndex = (lgraden >= 0 ? 1 : 2);

</script>
Vr.Gr. Egel.
 
Kan met één zin: :)
Hier is het een keuze van twee items, dus dan kan je inderdaad met een enkele zin klaar zijn. Maar bij meer items of een onbekend aantal items in je lijst heb je al een probleem. Er zit nog wel een fout in de eenregelcode - de invoer moet geconverteerd naar een integer anders werkt ze niet.
document.f.l.selectedIndex = (parseInt(lgraden) >= 0 ? 1 : 2);
 
Ik ging er van uit dat het al een getal was maar als het uit een string geknipt is dan moet je het idd parsen. :)

Als het niet een geheel getal is moet je wel weer parseFloat() gebruiken omdat anders -0.1 (zoals in het php voorbeeld) naar 0 wordt afgerond.


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan