javascript voor de php code?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Paul Weiss

Paul Weiss

28/09/2023 09:55:05
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>

for($i = 0; $i <= 7; $i++) {

     ${"titel$i"} = "titel1";
     ${"titel$i"} = "titel2";
     ${"titel$i"} = "titel3";
    
     echo $titel1;
     echo " ";
     echo $titel2;
       echo " ";
        echo $titel3;
        echo " ";
        
        
    
}
</script>
 
PHP hulp

PHP hulp

22/11/2024 21:01:42
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 10:13:01
Quote Anchor link
Heb je hier al naar gekeken?
https://www.w3schools.com/js/js_loop_for.asp
Gewijzigd op 28/09/2023 10:15:50 door - Ariën -
 
Paul Weiss

Paul Weiss

28/09/2023 10:14:25
Quote Anchor link
hoi arien. bedankt voor de link. zal er eens naar kijken.
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 10:15:06
Quote Anchor link
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 -
 
Paul Weiss

Paul Weiss

28/09/2023 10:23:10
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
${"titel$i"} = "titel1";


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
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 10:38:03
Quote Anchor link
Ik zou eerst alles verzamelen, en dat in een array zetten, en dat via één request via AJAX sturen.
 
Paul Weiss

Paul Weiss

28/09/2023 10:50:18
Quote Anchor link
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..
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 11:08:47
Quote Anchor link
Een voorbeeldje met de jQuery-library, wat ik vaak gebruik.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


titelIds kan je vervolgens verpakken tot een 'pakketje' die je aan AJAX kan voeren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  var dataToSend = { titelIds: titelIds };
 
Paul Weiss

Paul Weiss

28/09/2023 11:11:44
Quote Anchor link
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?
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 11:26:28
Quote Anchor link
Ja, in de console. Niet direct op je scherm.
 
Paul Weiss

Paul Weiss

28/09/2023 11:40:23
Quote Anchor link
ah ja natuurlijk. is natuurlijk ook query.
Gewijzigd op 28/09/2023 11:43:12 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 11:48:53
Quote Anchor link
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 -
 
Paul Weiss

Paul Weiss

28/09/2023 11:50:05
Quote Anchor link
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
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 12:02:47
Quote Anchor link
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.
 
Paul Weiss

Paul Weiss

28/09/2023 12:03:27
Quote Anchor link
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>
]
Gewijzigd op 28/09/2023 12:05:04 door Paul Weiss
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 12:17:55
Quote Anchor link
Heb je het al verpakt?
var dataToSend = { titelIds: titelIds };

Nu kan je dataToSend voeren als data aan AJAX.
 
Paul Weiss

Paul Weiss

28/09/2023 12:31:13
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 12:34:07
Quote Anchor link
Stuur het eens via POST via AJAX, en kijk eens wat er in je $_POST staat.
 
Paul Weiss

Paul Weiss

28/09/2023 12:35:51
Quote Anchor link
is goed. ga ermee aan de slag.
 
- Ariën  -
Beheerder

- Ariën -

28/09/2023 12:42:25
Quote Anchor link
Voor het gemak kan je het ook verpakken in JSON:
var dataToSend = JSON.stringify({ titelIds: titelIds });

Dan kan je het makkelijker verwerken.
 
Paul Weiss

Paul Weiss

28/09/2023 12:44:10
Quote Anchor link
oh oke. bedankt. ga het proberen.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.