Meerdere document.getElementById

Status
Niet open voor verdere reacties.

Stinuz

Terugkerende gebruiker
Lid geworden
14 jun 2003
Berichten
1.245
Hey hey, ik heb een klein probleempje, om te beginnen is dit het javascript:

Code:
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript">

var ajax = new sack();

function getCityList(sel)
{
	var countryCode = sel.options[sel.selectedIndex].value;
	document.getElementById('dhtmlgoodies_processor').options.length = 0;	// Empty city select box
	if(countryCode.length>0){
		ajax.requestFile = 'processor.php?countryCode='+countryCode;	// Specifying which file to get
		ajax.onCompletion = createProcessor;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function	
	}
	document.getElementById('dhtmlgoodies_geheugen').options.length = 0;	// Empty city select box
	if(countryCode.length>0){
		ajax.requestFile = 'mbram.php?countryCode='+countryCode;	// Specifying which file to get
		ajax.onCompletion = createGeheugen;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function		
	}
}

function createProcessor()
{
	var obj = document.getElementById('dhtmlgoodies_processor');
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
}	

function createGeheugen()
{
	var obj = document.getElementById('dhtmlgoodies_geheugen');
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
}	
</script>

Nu heb ik dus 2 verschillende document.getElementById en die vraag ik op de volgende manier op:

PHP:
	<tr>
		<td>Processor: </td>
		<td><select id="dhtmlgoodies_processor" name="dhtmlgoodies_processor">
		</select>
		</td>
	</tr>
	<tr>
		<td>Geheugen: </td>
		<td><select id="dhtmlgoodies_geheugen" name="dhtmlgoodies_geheugen">
		</select>
		</td>
	</tr>

Nu is het probleem dat alleen de laatste document.getElementById het doet. Op het moment doet alleen ''geheugen'' het dus. En als ik het zoals hieronder omdraai, dan doet alleen ''processor'' het:

PHP:
function getCityList(sel)
{
	var countryCode = sel.options[sel.selectedIndex].value;
	document.getElementById('dhtmlgoodies_geheugen').options.length = 0;	// Empty city select box
	if(countryCode.length>0){
		ajax.requestFile = 'mbram.php?countryCode='+countryCode;	// Specifying which file to get
		ajax.onCompletion = createGeheugen;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function		
	}
	document.getElementById('dhtmlgoodies_processor').options.length = 0;	// Empty city select box
	if(countryCode.length>0){
		ajax.requestFile = 'processor.php?countryCode='+countryCode;	// Specifying which file to get
		ajax.onCompletion = createProcessor;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function	
	}
}

Nu denk ik dus dat ik meerdere ''document.getElementById'' op een andere manier moet toevogendan ik heb gedaan. Iemand enige idee?

Als iemand helemaal niks van deze vraag begrijpt, aub dit even doorlezen: http://www.helpmij.nl/forum/showthread.php?t=315639

Alvast bedankt voor de moeite :D

EDIT: Het gaat hier trouwens om dit script: http://www.dhtmlgoodies.com/index.html?whichScript=ajax-chained-select
 
Laatst bewerkt:
Probeer het eens zo:
Code:
var ajax = new sack();
var ajaxTwo = new sack();

function getCityList(sel)
{
	var countryCode = sel.options[sel.selectedIndex].value;
	document.getElementById('dhtmlgoodies_processor').options.length = 0;	// Empty city select box
	if(countryCode.length>0){
		ajax.requestFile = 'processor.php?countryCode='+countryCode;	// Specifying which file to get
		ajax.onCompletion = createProcessor;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function	
	}
	document.getElementById('dhtmlgoodies_geheugen').options.length = 0;	// Empty city select box
	if(countryCode.length>0){
		ajaxTwo.requestFile = 'mbram.php?countryCode='+countryCode;	// Specifying which file to get
		ajaxTwo.onCompletion = createGeheugen;	// Specify function that will be executed after file has been found
		ajaxTwo.runAJAX();		// Execute AJAX function		
	}
}

function createProcessor()
{
	var obj = document.getElementById('dhtmlgoodies_processor');
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
}	

function createGeheugen()
{
	var obj = document.getElementById('dhtmlgoodies_geheugen');
	eval(ajaxTwo.response);	// Executing the response from Ajax as Javascript code	
}	
</script>
Anders gebruik je hetzelfde ajax object twee keer en dan overschijft de tweede de eerste.


Vr.Gr. Egel.
 
He-le-maal geweldig Egel, zo te zien doet hij het nu wel :D

Keep up the good work :thumb:
 
Nog een vraag:

Het javascriptje ziet er nu zo uit:

PHP:
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript">

var ajax = new sack();
var ajaxTwo = new sack();
var ajaxThree = new sack();

function getCityList(sel)
{
	var eigenschap = sel.options[sel.selectedIndex].value;
	document.getElementById('dhtmlgoodies_processor').options.length = 0;	// Empty city select box
	if(eigenschap.length>0){
		ajax.requestFile = 'search.php?type=processor&eigenschap='+eigenschap;	// Specifying which file to get
		ajax.onCompletion = createProcessor;	// Specify function that will be executed after file has been found
		ajax.runAJAX();		// Execute AJAX function	
	}
	document.getElementById('dhtmlgoodies_geheugen').options.length = 0;	// Empty city select box
	if(eigenschap.length>0){
		ajaxTwo.requestFile = 'search.php?type=geheugen&eigenschap='+eigenschap;	// Specifying which file to get
		ajaxTwo.onCompletion = createGeheugen;	// Specify function that will be executed after file has been found
		ajaxTwo.runAJAX();		// Execute AJAX function		
	}
		document.getElementById('dhtmlgoodies_videokaart').options.length = 0;	// Empty city select box
	if(eigenschap.length>0){
		ajaxThree.requestFile = 'search.php?type=videokaart&eigenschap='+eigenschap;	// Specifying which file to get
		ajaxThree.onCompletion = createVideokaart;	// Specify function that will be executed after file has been found
		ajaxThree.runAJAX();		// Execute AJAX function		
	}
}

function createProcessor()
{
	var obj = document.getElementById('dhtmlgoodies_processor');
	eval(ajax.response);	// Executing the response from Ajax as Javascript code	
}	

function createGeheugen()
{
	var obj = document.getElementById('dhtmlgoodies_geheugen');
	eval(ajaxTwo.response);	// Executing the response from Ajax as Javascript code	
}

function createVideokaart()
{
	var obj = document.getElementById('dhtmlgoodies_videokaart');
	eval(ajaxThree.response);	// Executing the response from Ajax as Javascript code	
}		
</script>

Op de volgende manier wordt aangegeven waar naar gekeken moet worden bij het opvragen van iets uit de database.

Code:
$options.="<OPTION VALUE=\"$type\">".$naam. "&nbsp;&nbsp;&nbsp;€".$prijs. '</option>';

Hier staat dus dat hij naar $type moet kijken bij het selecteren van een moederbord. Maar hoe zorg ik dat hij ook naar geheugentype en videokaart gaat kijken?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan