javascript voor de php code?
hallo.
Ik zou graag van onderstaande php script een javascript script willen maken. Heb weinig kennis van javascript. vandaar even hier de vraag. de reden dat ik deze in javascript wil hebben is dat ik vervolgens een ajax loop wil creeren.
Ik zou graag van onderstaande php script een javascript script willen maken. Heb weinig kennis van javascript. vandaar even hier de vraag. de reden dat ik deze in javascript wil hebben is dat ik vervolgens een ajax loop wil creeren.
Heb je hier al naar gekeken?
https://www.w3schools.com/js/js_loop_for.asp
https://www.w3schools.com/js/js_loop_for.asp
Gewijzigd op 28/09/2023 10:15:50 door - Ariën -
hoi arien. bedankt voor de link. zal er eens naar kijken.
Maar je wilt dus in je loop steeds een ajax-request uitvoeren? In dat geval kan je het beter omdraaien. De AJAX-request uitvoeren, en die doorlopen.
Gewijzigd op 28/09/2023 10:15:37 door - Ariën -
ja de bedoeling is dus dat ik een ajax loop creeer die elke id inleest. zo heb ik een id met "titel' 'titel2', 'titel3' etc..
vervolgens word steeds de inhoud van het desbreffende element per id via ajax doorgestuurd naar een php bestand die ze weer op de juiste manier kan opslaan in de database.
Maar ik weet niet of dit de juiste weg is. ik heb ook iets gelezen dat ik alle id's eerst in een array zou kunnen zetten. Maar ik weet niet of dit kan, aangezien ik nooit welke id's er zoal voorkomen op de pagina. Het zouden er 40 kunnen zijn, maar ook 55 etc. en zou ook pas kunnen beginnen met bijv. titel9. hierbij kan ook bijv. titel15 ontbreken. Is er een mogelijkheid om de pagina te scannen op alle id's beginnende met "titel" en deze in een array te plaatsen? hierbij moet ik wel vermelden dat het hoogste volgnummer wel bekend is. De lengte van de loop loopt dan t/m dit hoogste nummer.
Hoe bedoel je precies met jouw opmerking "AJAX-request uitvoeren, en die doorlopen".
Toevoeging op 28/09/2023 10:30:26:
de loop is dus nodig om het toegevoegde nummer van een id in te lezen. in php heb ik dus in de loop het opeenlopende nummer toegevoegd aan een variable zie:
Maar hoe dit in javascript te realiseren? Of is er een totaal andere oplossing mogelijk?
vervolgens word steeds de inhoud van het desbreffende element per id via ajax doorgestuurd naar een php bestand die ze weer op de juiste manier kan opslaan in de database.
Maar ik weet niet of dit de juiste weg is. ik heb ook iets gelezen dat ik alle id's eerst in een array zou kunnen zetten. Maar ik weet niet of dit kan, aangezien ik nooit welke id's er zoal voorkomen op de pagina. Het zouden er 40 kunnen zijn, maar ook 55 etc. en zou ook pas kunnen beginnen met bijv. titel9. hierbij kan ook bijv. titel15 ontbreken. Is er een mogelijkheid om de pagina te scannen op alle id's beginnende met "titel" en deze in een array te plaatsen? hierbij moet ik wel vermelden dat het hoogste volgnummer wel bekend is. De lengte van de loop loopt dan t/m dit hoogste nummer.
Hoe bedoel je precies met jouw opmerking "AJAX-request uitvoeren, en die doorlopen".
Toevoeging op 28/09/2023 10:30:26:
de loop is dus nodig om het toegevoegde nummer van een id in te lezen. in php heb ik dus in de loop het opeenlopende nummer toegevoegd aan een variable zie:
Maar hoe dit in javascript te realiseren? Of is er een totaal andere oplossing mogelijk?
Gewijzigd op 28/09/2023 10:33:44 door Paul Weiss
Ik zou eerst alles verzamelen, en dat in een array zetten, en dat via één request via AJAX sturen.
oke. maar hoe zou ik in javascript dat de pagina moeten scannen op alle i'd beginnende met "titel"? En hoe kan ik deze id's dan precies in een array krijgen? de array is namelijk altijd weer anders vandaar..
Een voorbeeldje met de jQuery-library, wat ik vaak gebruik.
titelIds kan je vervolgens verpakken tot een 'pakketje' die je aan AJAX kan voeren:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<h1 id="titel1">Dit is titel 1</h1>
<h2 id="titel2">Dit is titel 2</h2>
<p id="titel3">Dit is titel 3</p>
<div id="geenTitel">Dit is geen titel</div>
<script>
$(document).ready(function() {
// Maak een lege array voor de gevonden ID's
var titelIds = [];
// Zoek alle ID's die beginnen met "titel"
$('[id^="titel"]').each(function() {
// Voeg het ID toe aan de array
titelIds.push(this.id);
});
// De titelIds-array bevat alle overeenkomende ID's, zet deze in een debug console.log
console.log(titelIds);
});
</script>
<h2 id="titel2">Dit is titel 2</h2>
<p id="titel3">Dit is titel 3</p>
<div id="geenTitel">Dit is geen titel</div>
<script>
$(document).ready(function() {
// Maak een lege array voor de gevonden ID's
var titelIds = [];
// Zoek alle ID's die beginnen met "titel"
$('[id^="titel"]').each(function() {
// Voeg het ID toe aan de array
titelIds.push(this.id);
});
// De titelIds-array bevat alle overeenkomende ID's, zet deze in een debug console.log
console.log(titelIds);
});
</script>
titelIds kan je vervolgens verpakken tot een 'pakketje' die je aan AJAX kan voeren:
hoi arien. ah bedankt. ga ermee aan de slag. kom er wel op terug als ik er niet aan uit kom.
Toevoeging op 28/09/2023 11:17:28:
hoi arien. ik krijg niet te zien wat de inhoud van het pakketje is. via console.log(titelIds); zouden deze toch weergegeven moeten worden? of mis ik iets?
Toevoeging op 28/09/2023 11:17:28:
hoi arien. ik krijg niet te zien wat de inhoud van het pakketje is. via console.log(titelIds); zouden deze toch weergegeven moeten worden? of mis ik iets?
Ja, in de console. Niet direct op je scherm.
ah ja natuurlijk. is natuurlijk ook query.
Gewijzigd op 28/09/2023 11:43:12 door Paul Weiss
Die console.log() heeft niks met jQuery te maken, maar is gewoon iets wat een browser kan tonen in de console-scherm van de website-debugger tool. Je kan er zelfs een alert() kan maken.
Gewijzigd op 28/09/2023 11:49:20 door - Ariën -
ja dat klopt. was niet helemaal duidelijk. maar kreeg niets te zien in eerste instantie. de query was nodig voor de functie blijkbaar.
Gewijzigd op 28/09/2023 11:50:26 door Paul Weiss
Ja, ik gebruik vaak jQuery.
Het kan ook met het normale 'vanilla' Javascript, maar jQuery heeft handige functies om het sneller te schrijven.
Puur gewenning van mij.
Het kan ook met het normale 'vanilla' Javascript, maar jQuery heeft handige functies om het sneller te schrijven.
Puur gewenning van mij.
ja inderdaad. maar is ook prima toch. gebruik het ook. maar sla de query javascript altijd wel lokaal op.
Toevoeging op 28/09/2023 12:10:29:
Ben er even mee bezig. maar kom er toch niet aan uit. Hoe kan ik nu van elk desbtreffende id de inhoud van het bijbehorende element via ajax toewijzen?
In het verleden deed ik dit dus per id als onderstaand. En hoe moet ik dit dan in het php bestand moeten gaan opvangen aangezien de array reeks flexibel is?
[
<h1 id="titel1">Dit is titel 1</h1>
<h1 id="titel3">Dit is titel 3</h1>
<script>
$titel1 = $('#titel1').html();
</script>
]
Toevoeging op 28/09/2023 12:10:29:
Ben er even mee bezig. maar kom er toch niet aan uit. Hoe kan ik nu van elk desbtreffende id de inhoud van het bijbehorende element via ajax toewijzen?
In het verleden deed ik dit dus per id als onderstaand. En hoe moet ik dit dan in het php bestand moeten gaan opvangen aangezien de array reeks flexibel is?
[
<h1 id="titel1">Dit is titel 1</h1>
<h1 id="titel3">Dit is titel 3</h1>
<script>
$titel1 = $('#titel1').html();
</script>
]
Gewijzigd op 28/09/2023 12:05:04 door Paul Weiss
Heb je het al verpakt?
var dataToSend = { titelIds: titelIds };
Nu kan je dataToSend voeren als data aan AJAX.
var dataToSend = { titelIds: titelIds };
Nu kan je dataToSend voeren als data aan AJAX.
he arien. via var dataToSend = { titelIds: titelIds }; had ik wel ja. maar hoe moet ik dit dan in php steeds per id opvangen? in php moet ik namelijk de data uiteraard weer aan een variable toewijzen.
Stuur het eens via POST via AJAX, en kijk eens wat er in je $_POST staat.
is goed. ga ermee aan de slag.
Voor het gemak kan je het ook verpakken in JSON:
var dataToSend = JSON.stringify({ titelIds: titelIds });
Dan kan je het makkelijker verwerken.
var dataToSend = JSON.stringify({ titelIds: titelIds });
Dan kan je het makkelijker verwerken.
oh oke. bedankt. ga het proberen.




