Beste forumleden,

Bij voorbaat alvast dank voor de genomen moeite tijdens het lezen van deze post van een gloednieuwe gebruiker.

Op het moment ben ik bezig met het schrijven van een vragenlijst. Deze vragenlijst sla ik lokaal op in een phpMyAdmin database en run ik op OSX d.m.v. MAMP.
De betreffende database ziet er als volgt uit (ter illustratie, ik hoop dat de opmaak een beetje fatsoenlijk er uit rolt):
ID | vraag_top | vraag_bot | post_btn_nee | post_btn_ja
1 | vraag | vraag | int 1 of 0 | int 1 of 0
2 etc
3 etc etc.

Nu zou ik middels <p class ="vraag-top"><?= $vraag_top ?></p> in de HTML in een <div> (niet in een php echo), de variabele $vraag_top & _bot willen gebruiken om de vragen uit de database te laden, en nog belangrijker; later de gegeven waardes van de <a href> voor post_btn_ja & nee in opslaan. In mijn leek taal: de variabelen $vraag_top en $vraag_bot zijn middels sass/scss mooi gestyled en met (?) if else statements (?) of onClick events op de Ja / Nee href (?) bepalen dat er antwoord is gegeven, dit antwoord opslaan in de database om hier later een uitkomst op te genereren en de volgende vraag te weergeven.

Ik betwijfel of mijn code allemaal logisch en/of semantisch is, ik beroep mij dan op het feit dat ik recent met .php begonnen ben :-), en hoop dat jullie mij alsnog verder willen helpen!

Ter afsluiting, nogmaals dank voor het meedenken.
De pagina-navigatie vindt plaats aan de hand van de paginanummers in de URL. Dan kan je gewoon $i++ doen, waarbij $i in dit geval voor het getal staat. ++ zorgt voor een incrementatie.

Over de ajax-functie. Ikzelf heb dit (ongetest) gebouwd:


<select id="123" name="123">
    <option value="0">Nee</option>
    <option value="1">Ja</option>
</select>



$('select').on('change', function() {
      var hash = 'ABCD1234567890';
      var selectid = $(this).attr("id");
      var requesturl = 'makechoice.php?id='+selectid+'&choice='+this.value+'&hash='+hash;
      $.ajax({
        url: requesturl,
        cache: true,
        dataType: 'html',
				success: function(html){
					alert('Gekozen! Hier kan je de DOM aanpassen, en met jQuery een vinkje plaatsen.')			 
		 		},
				error:function (xhr, ajaxOptions, thrownError){
					alert('Er is een fout opgetreden:'+ xhr.status + ' '+ thrownError);
	      }    
			});
      
      alert( this.value+' '+selectid );
      
}); 

De hash is bedoeld voor de opslag per uniek persoon. Ik heb geen idee hoe je je dat op dit moment regelt. Want iedereen vult het voor zich eigen in, en dus moet er een herkenning aan zitten. Ik heb deze maar even hardcoded erin gezet.
- Ariën - op 04/05/2017 17:51:03

De pagina-navigatie vindt plaats aan de hand van de paginanummers in de URL. Dan kan je gewoon $i++ doen, waarbij $i in dit geval voor het getal staat. ++ zorgt voor een incrementatie.

Over de ajax-functie. Ikzelf heb dit (ongetest) gebouwd:


<select id="123" name="123">
    <option value="0">Nee</option>
    <option value="1">Ja</option>
</select>



$('select').on('change', function() {
      var hash = 'ABCD1234567890';
      var selectid = $(this).attr("id");
      var requesturl = 'makechoice.php?id='+selectid+'&choice='+this.value+'&hash='+hash;
      $.ajax({
        url: requesturl,
        cache: true,
        dataType: 'html',
				success: function(html){
					alert('Gekozen! Hier kan je de DOM aanpassen, en met jQuery een vinkje plaatsen.')			 
		 		},
				error:function (xhr, ajaxOptions, thrownError){
					alert('Er is een fout opgetreden:'+ xhr.status + ' '+ thrownError);
	      }    
			});
      
      alert( this.value+' '+selectid );
      
}); 

De hash is bedoeld voor de opslag per uniek persoon. Ik heb geen idee hoe je je dat op dit moment regelt. Want iedereen vult het voor zich eigen in, en dus moet er een herkenning aan zitten. Ik heb deze maar even hardcoded erin gezet.

Mijn dank is groot voor het reageren, en de geschreven code. Deze ga ik implementeren na het oplossen van het doorsturen.
Als ik namelijk achter mijn url ?id=3 of ?id=2 etc. zet, verandert de content niet. Wat doe ik verkeerd?
Je moet wel een script maken in PHP (makechoice.php) die alles netjes opslaat. Het huidige script doet alleen een request.

Reageren