javascript voor de php code?
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.
hoi arien. bedankt voor de link. zal er eens naar kijken.
Gewijzigd op 28/09/2023 10:15:37 door - Ariën -
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..
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:
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.
Gewijzigd op 28/09/2023 11:43:12 door Paul Weiss
Gewijzigd op 28/09/2023 11:49:20 door - Ariën -
Gewijzigd op 28/09/2023 11:50:26 door Paul Weiss
Het kan ook met het normale 'vanilla' Javascript, maar jQuery heeft handige functies om het sneller te schrijven.
Puur gewenning van mij.
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
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.
var dataToSend = JSON.stringify({ titelIds: titelIds });
Dan kan je het makkelijker verwerken.
oh oke. bedankt. ga het proberen.