Array opslaan
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<input id="618" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="618" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input id="619" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="619" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input id="620" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="620" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input type="text" id="618" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input id="619" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="619" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input id="620" type="text" name="titelnaam[]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" id="620" name="titelfunctie[]" value="" placeholder="Functie" class="form-control" style="width:200px;">
Mijn database omvat een ID-, naam- en functie-veld.
Omdat de pagina dynamisch is, en er ook nieuwe velden kunnen worden aangemaakt wil ik alles wat op een bepaald moment op de pagina staat saven via een array.
Maar... hoe?
Hoe lees ik dit uit?
Iets als: if (isset($_POST['titelnaam'])) {
Maarja... hoe krijg ik het dan bij het juiste ID gesaved?
Het handigste is om de id-nummers tussen de brackets in je HTML te plaatsen. Dan heb je meteen een goede key aan je array.
Ik neem aan dat je dit alles niet letterlijk opslaat als array?
Gewijzigd op 23/02/2018 20:20:26 door Thomas van den Heuvel
Heb je een voorbeeldje?
Waarom gebruik je geen primary key, auto increment voor ids?
Als je daar nou je ID tussenzet, dan hebben die array elementen meteen een key die als identificatie kan dienen.
Jasper Schellekens op 28/02/2018 13:33:42:
Waarom gebruik je geen primary key, auto increment voor ids?
Eh, hoe kom je daarbij? Ik zie de ID's wel verder netjes oplopen, wat nog niet zegt of hij wel of niet een PK en auto_increment gebruikt.
Gewijzigd op 28/02/2018 13:38:44 door - Ariën -
- Ariën - op 28/02/2018 13:36:23:
Brackets zijn de vierkante haakjes: [ ]
Als je daar nou je ID tussenzet, dan hebben die array elementen meteen een key die als identificatie kan dienen.
Eh, hoe kom je daarbij? Ik zie de ID's wel verder netjes oplopen, wat nog niet zegt of hij wel of niet een PK en auto_increment gebruikt.
Als je daar nou je ID tussenzet, dan hebben die array elementen meteen een key die als identificatie kan dienen.
Jasper Schellekens op 28/02/2018 13:33:42:
Waarom gebruik je geen primary key, auto increment voor ids?
Eh, hoe kom je daarbij? Ik zie de ID's wel verder netjes oplopen, wat nog niet zegt of hij wel of niet een PK en auto_increment gebruikt.
Topic starter had het over opslaan in database. Ik dacht dat hij elk veld handmatig genummerd heeft. Als je werkelijk 600 tabellen aan hebt gemaakt... liever hij als ik.
Met die velden die hij bedoelt zal hij hopelijk formuliervelden bedoelen, en geen databasevelden.
Misschien kan Daan wat meer vertellen over zijn opzet?
Gewijzigd op 28/02/2018 13:47:38 door - Ariën -
Ik heb nu het volgende (met voorbeeldID's:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<input type="text" name="titelnaam[618]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" name="titelfunctie[618]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input type="text" name="titelnaam[619]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" name="titelfunctie[619]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input type="text" name="titelnaam[620]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" name="titelfunctie[620]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input type="text" name="titelfunctie[618]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input type="text" name="titelnaam[619]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" name="titelfunctie[619]" value="" placeholder="Functie" class="form-control" style="width:200px;">
<input type="text" name="titelnaam[620]" value="" placeholder="Naam" class="form-control" style="width:200px;">
<input type="text" name="titelfunctie[620]" value="" placeholder="Functie" class="form-control" style="width:200px;">
Hoe stuur ik dan de array netjes weg met jquery? Ik heb even gegoogeld, maar kwam er niet uit...
De pagina update.php moet het gaan aanpassen in de database.
Gewijzigd op 28/02/2018 14:12:04 door Daan Vee
Alles in een keer, of per item opslaan via een AJAX-request?
Gewijzigd op 28/02/2018 14:19:57 door - Ariën -
De opzet is precies zoals hierboven....
Ik werk blur:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<script>
$(document).ready(function(){
$("input").blur(function(){
alert("This input field has lost its focus.");
});
});
</script>
$(document).ready(function(){
$("input").blur(function(){
alert("This input field has lost its focus.");
});
});
</script>
In plaats van alert, moet alles weggestuurd worden naar update.php
Heb je al gekeken naar de $.ajax() functie?
Want hoe roep ik de data aan?
Gewijzigd op 28/02/2018 15:02:50 door Daan Vee
De data van je formulier kan je opslaan in een geserialiseerd 'pakketje' met:
En deze property in je $.ajax() functie:
En controleer in je browser met je requests-tabblad van je Inspector-tool wat er gebeurt.
Voor het gemak kan je altijd even een print_r() in je PHP-script gebruiken om te kijken of de array klopt.
Gewijzigd op 28/02/2018 15:04:27 door - Ariën -
Even ter info: er staan meer tekstvelden op de pagina index.php, hoe maak ik dat alleen titelnaam[] en titelfunctie[] wordt doorgestuurd via een array?
submit functie gebruiken. Een 'blur' zou dan een vreemde handeling zijn.
Het ging toch om ALLES in één keer? Dan zou ik liever een Gewijzigd op 28/02/2018 15:30:04 door - Ariën -
- Ariën - op 28/02/2018 13:47:14:
Ik heb geen idee hoe je op die tabellen uitkomt, en waar je leest dat er ID's handmatig worden aangemaakt :-P
Met die velden die hij bedoelt zal hij hopelijk formuliervelden bedoelen, en geen databasevelden.
Misschien kan Daan wat meer vertellen over zijn opzet?
Met die velden die hij bedoelt zal hij hopelijk formuliervelden bedoelen, en geen databasevelden.
Misschien kan Daan wat meer vertellen over zijn opzet?
Ahh ik was net wakker en heb volgensmij gelezen wat ik wilde lezen haha. mijn fout.
Voor TopicStarter:
Heb je daadwerkelijk 600 input velden aangemaakt?
Gewijzigd op 28/02/2018 15:31:46 door Jasper Schellekens
Deze is op te schroeven met ini_set, php.ini of .htaccess, maar ik zou er toch onder blijven. Een paginanavigatie zou een mooie oplossing zijn.
Gewijzigd op 28/02/2018 15:40:17 door - Ariën -
- Ariën - op 28/02/2018 15:39:59:
Als er 600 items op één pagina staan, en dus twee formulierelementen per item, dan kom je uit boven de 1.000, en overschrijd je de grens van max_input_vars.
Deze is op te schroeven met ini_set, php.ini of .htaccess, maar ik zou er toch onder blijven. Een paginanavigatie zou een mooie oplossing zijn.
Deze is op te schroeven met ini_set, php.ini of .htaccess, maar ik zou er toch onder blijven. Een paginanavigatie zou een mooie oplossing zijn.
Dat wist ik eigenlijk niet. Maar dat limiet is dan per pagina?
Dan is het wel mogelijk te werken met blur toch?
Maar hoe zorg ik dan dat onderstaande code werkt op titelnaam[] en titelfunctie[] ?
Dat die in de array komen en doorgestuurd worden?
Daan Vee op 28/02/2018 15:44:36:
Er kunnen maximaal 20 items per pagina aangemaakt worden (dus maximaal 40 tekstvelden).
Dan is het wel mogelijk te werken met blur toch?
Maar hoe zorg ik dan dat onderstaande code werkt op titelnaam[] en titelfunctie[] ?
Dat die in de array komen en doorgestuurd worden?
Dan is het wel mogelijk te werken met blur toch?
Maar hoe zorg ik dan dat onderstaande code werkt op titelnaam[] en titelfunctie[] ?
Dat die in de array komen en doorgestuurd worden?
Ik heb geen verstand van ajax en javascript ofzo maar ik denk dat dit net zoals bij PHP met
$_POST["titelfunctie[]"]; gedaan kan worden.
Deze haal je in jouw geval dan op bij update.php
Gewijzigd op 28/02/2018 15:49:25 door Jasper Schellekens