Positie op pagina na Form Post

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Daniel VDM

Daniel VDM

08/03/2020 19:54:28
Quote Anchor link
Hallo,
ik heb een lijvig formulier online staan met een 200 tal namen die elk een "checkbox" hebben voor de aanduiding van hun aanwezigheid. Wanneer ik een selectie maak in de selectbox doe ik onmiddellijk een formulier submit waardoor de pagina reload en de pagina weer bovenaan komt te staan.
Ik heb reeds websites gezien waar de positie op de pagina blijft behouden na ieder formulier submit.
Heeft iemand enig idee hoe ik dit best kan oplossen? De pagina is gemaakt in PHP.
Gewijzigd op 08/03/2020 20:22:22 door Daniel VDM
 
PHP hulp

PHP hulp

16/04/2024 23:22:29
 
- Ariën  -
Beheerder

- Ariën -

08/03/2020 19:58:45
Quote Anchor link
Kan je code leesbaar maken door deze tussen code-tags te plaatsen? Zie ook de Veelgestelde Vragen.
Gewijzigd op 08/03/2020 19:59:05 door - Ariën -
 
Daniel VDM

Daniel VDM

08/03/2020 20:13:14
Quote Anchor link
Arien, waar kan ik de "veel gestelde vragen" vinden?
 
- Ariën  -
Beheerder

- Ariën -

08/03/2020 20:14:41
Quote Anchor link
Kijk eens naar beneden?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/03/2020 20:15:42
Quote Anchor link
Ik zou dan het formulier met AJAX versturen.
 
Daniel VDM

Daniel VDM

08/03/2020 20:19:49
Quote Anchor link
Lukt niet hoor..
Gewijzigd op 08/03/2020 20:20:59 door Daniel VDM
 
- Ariën  -
Beheerder

- Ariën -

08/03/2020 20:22:30
Quote Anchor link
'Wat' lukt niet?
Je code kan je tussen [code] en [/code] plaatsen.
Gewijzigd op 08/03/2020 20:25:07 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/03/2020 20:23:50
Quote Anchor link
zet wat je nu hebt tussen [code] en [/code]. Zie ook Welke BBcodes kan ik gebruiken?
Gewijzigd op 08/03/2020 20:24:07 door Frank Nietbelangrijk
 
Daniel VDM

Daniel VDM

08/03/2020 20:26:47
Quote Anchor link
zie volgende poging
Gewijzigd op 08/03/2020 20:30:18 door Daniel VDM
 
- Ariën  -
Beheerder

- Ariën -

08/03/2020 20:27:34
Quote Anchor link
Wat ben je aan het doen, joh?
Waarom per regel? :P
 
Daniel VDM

Daniel VDM

08/03/2020 20:29:34
Quote Anchor link
nieuwe poging
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" name="form1">
              <tr class="bg1">
                <td><?php echo ($naam); ?></td>
                   <td align="center">
                <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" name="form2">
                <input name="members_id" type="hidden" value="<?php echo($members_id); ?>">
                <input name="members_ploeg" type="checkbox" id="members_ploeg" value="1" <?php if ($members_ploeg == "1") {echo ("checked");  }?>  onchange='document.forms[2].action="#";submit()'>
                 </td>          
            </tr>  
            </form>
 
- Ariën  -
Beheerder

- Ariën -

08/03/2020 20:32:59
Quote Anchor link
Gezien je het hebt over dat je op de zelfde plaats blijft, verwacht ik niet dat je dus omlaag scrolled naar een button om de boel te versturen. Ik vermoed dat het al verstuurd en bevestigd wordt door op het formulier element te klikken? Klopt dat?
 
Daniel VDM

Daniel VDM

08/03/2020 20:47:03
Quote Anchor link
Nee ik blijf niet op dezelfde plaats. Wanneer ik de checkbox naast de 150 ste naam aanklik doe ik een submit om dit te bewaren in de database. Gezien er een submit heeft plaatsgevonden wordt de pagina herladen en kom ik opnieuw bovenaan het formulier te staan. Om verder te gaan men naam 151 of meer dan moet ik telkenmale scrollen tot in op de hoogte ben van die naam...
Ik zoek dus een oplossing om na een submit opnieuw op dezelfde hoogte te komen van mijn pagina zonder dat ik telkenmale moet gaan scrollen.
 
- Ariën  -
Beheerder

- Ariën -

08/03/2020 20:50:57
Quote Anchor link
Via AJAX de waarde laten bij een onClick-event laten versturen naar een PHP-script. Dan wordt er op de achtergrond a-synchroon een script aangeroepen.
Gewijzigd op 08/03/2020 20:52:20 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

09/03/2020 00:05:36
Quote Anchor link
Waarschijnlijk is een aanpak met AJAX het beste. Hiermee submit je het formulier "op de achtergrond", hierdoor verlaat je nooit de huidige overzichtspagina, en verspringt deze pagina dus ook niet.

Het enige wat misschien belangrijk is om toe te voegen is een soort van visuele indicatie dat het aan- of uitvinken daadwerkelijk is doorgevoerd.

Dit zou je kunnen bewerkstelligen met een terugkoppeling vanuit het stukje code wat aangeroepen wordt middels het AJAX-request.
 
Rob Doemaarwat

Rob Doemaarwat

09/03/2020 08:00:10
Quote Anchor link
Of een low-tech oplossing: voeg een "fragment" toe aan de POST action met het id van de 151e checkbox. Dan springt ie na het herladen precies daar naar toe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form action="<?php $_SERVER['PHP_SELF']; ?>#members_ploeg" method="POST" name="form1">

(hiermee springt ie naar de submit button, maar vervang "#members_ploeg" door "#input151_id" en hij springt naar input nummer 151).
 
Michael -

Michael -

09/03/2020 23:22:15
Quote Anchor link
Ik wil nog even wijzen op het gebruik van PHP_SELF. Deze is/was bestempeld als onveilig. Zie ook klik.
Als het niet nodig is gebruik dan $_SERVER['SCRIPT_NAME']. Let erop dat deze geen argumenten mee stuurt itt PHP_SELF.
 
Jan R

Jan R

10/03/2020 07:09:03
Quote Anchor link
Je kan misschien met ankers werken en na de post naar dat anker springen

Sorry niet gezien dat rob dit ook al voorstelde
Gewijzigd op 10/03/2020 07:11:42 door Jan R
 
Thomas van den Heuvel

Thomas van den Heuvel

10/03/2020 15:56:50
Quote Anchor link
@Michael, als je gewoon zaken escaped in een HTML-context die niet als HTML geïnterpreteerd dienen te worden dan speelt dit probleem uberhaupt niet? Het makkelijkste is sowieso om dit overal consequent te doen.

Als je dan toch aangewezen bent op $_SERVER dan is SCRIPT_NAME misschien beter inderdaad, maarrrr... nog beter is wellicht gewoon expliciet vastleggen (bestandsnaam.php indien het een standalone PHP-bestand is) of als je een wat geavanceerde systeem hebt een centrale aanpak voor het genereren van applicatie-links, die je vervolgens escaped voor gebruikmaking in een specifieke context.
 
Michael -

Michael -

10/03/2020 16:00:49
Quote Anchor link
Ja dat kan. Ik gebruik gewoon standaard altijd SCRIPT_NAME. Lijkt me makkelijker dan htmlspecialchars($_SERVER['PHP_SELF']). Wat in dit geval dus ook niet gebeurt.
 
Rob Doemaarwat

Rob Doemaarwat

10/03/2020 20:13:35
Quote Anchor link
We dwalen af ... maar als je dan toch naar hetzelfde bestand wilt POST-en kun je de action ook gewoon helemaal weglaten. Gaat ie vanzelf naar jezelf.

Of in mijn eigen oplossing/voorbeeld alleen een fragment:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form action="#members_ploeg" method="POST" name="form1">


Maar idem dito voor een query string (action="?foo=bar).
 

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.