Combobox (select) requery doen zonder page reload

Status
Niet open voor verdere reacties.

bluesbrother

Gebruiker
Lid geworden
20 sep 2006
Berichten
72
Ik heb een Select/Combobox die ik vanuit php dynamisch opbouw, als de pagina geladen word.
Code:
function GetCmb(){
	
	$link = mysql_connect('localhost', 'bb', 'ww');
		if (!$link) {
    			die('Could not connect: ' . mysql_error());
				}
					
					
				mysql_select_db('joomlanew');
					
		$result = mysql_query('SELECT idtest, txttest FROM jos_aldo_test');
		
		$cmbString = '<select name="cmbItems" id="cmbItems">';
	
		while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
		
				$cmbString .= '<option value="';
				$cmbString .= $row[0];
				$cmbString .= '">';
				$cmbString .= $row[1];
				$cmbString .= '</option>';
					      
			}
			$cmbString .= '</select>';
			
			//mysql_close($link);
			return $cmbString;
	
}
Dat werkt. Ik heb er een textbox naaststaan waarin je met ajax een waarde in een database opslaat. Waar de combobox ook zijn waarden vandaan haalt.
Maar nu wil ik dat op het moment dat je de nieuwe waarde opslaat, deze ook opnieuw geladen word in de combobox zonder dat de pagina herladen word.
Maar hoe ik ook google, ik kom niks tegen wat er op lijkt, kan het wel?
 
Alles kan.

Makkelijkste wat ik me kan bedenken is om gewoon de hele combobox opnieuw te doen als je iets toevoegd; dus gewoon AJAX als response een nieuwe combo-box laten echo'en in PHP en die over de oude heenzetten :)
 
Ik heb de functie zoals hierboven in een functie staan, en als ik die aanroep vanuit het php script dat de data opslaat gebeurd er niks. Voor de duidelijkheid hoe het in eklaar zit nu:

1. php script met functie die combobox maakt word aangeroepen op de plek waar ik die hebben wil tussen wat html waaronder een Txtbox met knop ernaast die de waarde van de txtbox opslaat.
2. Javascript (ajax) die de waarde doorstuurt naar een ander php bestand die de waarde opslaat in de db. Als je de pagina refreshed dan staat hij ook in de combobox.
Nu nog een manier om dit te doen zonder pagina reload.

Ik snap niet helemaal hoe je dat dan moet doen. En wat jij suggereert.
 
Als je die functie in de AJAX call hebt staan, moet je niet 'return' maar 'echo' gebruiken; je moet de AJAX response terugsturen naar de browser, niet teruggeven als resultaat van de functie.

Als die functie in op meerdere plekken gebruikt wordt, kun je natuurlijk ook op je AJAX pagina gewoon zetten

PHP:
echo GetCmb();

of iets dergelijks.

Succes :)
 
Opgelost.
Ik laat Ajax nu ook de combobox opbouwen. Nadat er een waarde is toegevoegd roep ik diezelfde functie weer aan die de combobox opbouwd.
Als het werkt denk je: wat is dit simpel.
Bedankt.
 
Dat had ik inderdaad de eerste keer ook, het klinkt moeilijker dan het is ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan