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 laatste regel is niet zo heel lastig in de praktijk:

<?php
// voer hier je query uit en dergelijke
while($row = $result->fetch_assoc()) {
?>
<div class ="container_vragen">
              <p class ="vraag-top"><?php echo $row['vraag_top']; ?></p>
              <p class ="vraag-bot"><?php echo $row['vraag_bot']; ?></p>
</div> 
<?php
}
?> 
**quote-knip**

Dat is me inderdaad gelukt. Door $row['vraag_top & _bot'] te echoën krijg ik ook alle rows als resultaat te zien. Hoe kan ik er nu voor zorgen dat er d.m.v. een antwoord (ja/nee) te geven het resultaat ervan op te slaan en de volgende row in de database te displayen? Nogmaals dank voor alle hulp Ariën!

Je hebt al een formuliertje met de radio- of selectbuttons?
Absoluut, momenteel staan de zaken er zo voor:

<?php
            $id     = isset($_GET['id']);
            $sql    = "SELECT * FROM vragenlijsttbl LIMIT 1 OFFSET 2";
            $result = $connection->query($sql) or die($connection->error);
            while($row = $result->fetch_assoc()) {
            ?>
            <div class ="container_vragen">
                <p class ="vraag-top"><?php echo $row['vraag_top']; ?></p>
                <p class ="vraag-bot"><?php echo $row['vraag_bot']; ?></p>
            </div>
            <?php
            }
            ?>


LIMIT 1 OFFSET 1 t/m 15 wil ik nu in een if statement gaan verwerken. "if href is clicked, then show LIMIT OFFSET 2, 3, 4. Hoe ik de data bij klikken van href ga opslaan is nog maar de vraag.
Ikzelf zet te denken om de settings per verandering direct op te slaan in de database. Dat kan je dan met een AJAX-request in HTML en JavaScript. Je kan bijvoorbeeld als handigheid een mooi visueel vinkje plaatsen bij je vraag zodra je request goed is gegaan (met een status zoals OK vanuit je script).

Dan kan de gebruiker steeds heen en weer switchen omdat alles realtime bij het klikken wordt verstuurd.
Dat klinkt fantastisch! Hier heb ik tijdens het zoeken voor oplossingen ook meermaals reacties over gelezen. Mijn kennis reikt echter nog niet zo ver om hier zoals jij dat kan een oplossing in te bedenken... De oplossing zoals jij het schets is wel het gewenste eindresultaat, inclusief het opslaan van het antwoord dan.
Ikzelf gebruik voor AJAX-requests vaak de $.ajax() functie van de jQuery-library.
Met deze code kan je in ieder geval al de gekozen waarde tonen. Met een $.ajax() request kan je deze naar je script sturen.


<script src="https://code.jquery.com/jquery-3.2.1.js"></script>

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


En de JavaScript:

$('select').on('change', function() {
	  alert( this.value );
});
Hier kom ik helaas niet verder mee... Ben je mogelijk bereid om nog verder uit te weiden in je toelichting?
In plaats van die alert moet je dus de $.ajax() functie van jQuery gebruiken.
Misschien even een andere vraag:

$vraagid = 0;
            $sql    = "SELECT * FROM vragenlijsttbl LIMIT 1 OFFSET $vraagid";


Hoe kan ik de variabele $vraagid laten optellen met 1, bij het klikken van de ja of nee button/href/HTML element?

Reageren