Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Applicatie met terug en volgende knoppen

Pagina: 1
Acties:
  • 160 views sinds 30-01-2008
  • Reageer

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik wil een interface maken met terug en volgende knoppen.

Nu is dat niet zo'n probleem. Ik heb een div gemaakt die content heet en met het script ajaxpage heb ik vorige en volgende knoppen gemaakt.

Op de index pagina geef ik een eerste pagina op die er geladen moet worden:

PHP:
1
$load = '1';


Vervolgens doe ik in de body een onload:

HTML:
1
<body onload="javascript:ajaxpage('pagina<?php echo $load; ?>.php', 'content');">


In de pagina's die vervolgens geladen worden geef ik aan wat de vorige of de volgende pagina is en worden de knoppen geladen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$previous = '1';
$next = '3';

<?php 
    if (!$previous) {   
?>

    <input class="knoppen" name="sluiten" type="button" value="Sluiten" onclick="javascript:window.close();" />

<?php
    } else {
?>

    <input class="knoppen" name="terug" type="button" value="Terug" onclick="javascript:ajaxpage('pagina<?php echo $previous; ?>.php', 'content');"/>

<?php 
}
?>



<?php 
    if (!$next) {   
?>

    <input class="knoppen" name="volgende" type="button" value="Volgende" onclick="javascript:ajaxpage('pagina<?php echo $next; ?>.php', 'content');" disabled="disabled"/>

<?php
    } else {
?>

    <input class="knoppen" name="volgende" type="button" value="Volgende" onclick="javascript:ajaxpage('pagina<?php echo $next; ?>.php', 'content');"/>

<?php 
}
?>


Nu komt mijn probleem. Met deze constructie kun je leuk naar volgende en vorige pagina's bladeren, maar als je formulieren wil laten invullen kom je niet zo ver. Je kan het formulier wel in de pagina zetten maar hij wordt in feite niet gesubmit.

Hoe kan ik er voor zorgen dat dit wel kan? Moet ik van de vorige en volgende knoppen submit buttons maken. En wat doe je met de variabelen die je dan submit. Sla je die op in een sessie of desnoods hidden fields?

En je hebt natuurlijk een terug knop en een volgende knop. Als dit beide submit knoppen zijn, hoe zorg je er dan voor dat het form de ene keer naar de vorige en de andere keer naar de volgende pagina gesubmit wordt?

Iemand die hier ervaring mee heeft?

[ Voor 8% gewijzigd door ViNyL op 09-01-2008 15:20 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
ViNyL schreef op woensdag 09 januari 2008 @ 15:09:

Nu komt mijn probleem. Met deze constructie kun je leuk naar volgende en vorige pagina's bladeren, maar als je formulieren wil laten invullen kom je niet zo ver.
Waarom niet? Gebruik je wel eigen/aparte forms voor de formulieren?
Ik denk niet dat je duidelijk genoeg bent in wat het probleem is; zoals je topic nu is is het (voor mij althans) gissen naar wat je bedoelt. Dus bij deze het vriendelijke verzoek je TS even aan te vullen met wat precies het probleem is (duidelijk(er)) en evt. een (uitgeklede, bare essentials) test-case.

[ Voor 32% gewijzigd door RobIII op 09-01-2008 15:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Omdat je in feite niets submit naar de volgende pagina toch? Dan zul je dus submit buttons moeten maken van je volgende en vorige knoppen toch?

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Vergeet het elfde gebod niet.
Gij zult niet klooien met de interface van de gebruiker.
Waarom wil je persee zelf vorige en volgende knoppen maken?

TabCinema : NiftySplit


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Omdat ik veel wil combineren op een pagina en een vorige/volgende interface er dan een stuk mooier/makkelijker uitziet..

  • xtra
  • Registratie: November 2001
  • Laatst online: 19-11 10:57
Bozozo schreef op woensdag 09 januari 2008 @ 15:19:
Vergeet het elfde gebod niet.


[...]


Waarom wil je persee zelf vorige en volgende knoppen maken?
Bij een 'meerstaps' interface (webshop, enquete) heb je andere vorige en volgende knoppen dan de browser. Volgens mij zit daar de reden.

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 14:45
Als je je forms netjes bouwt volstaat een gewone submit button om naar de volgende pagina te gaan toch ook? Ik zie hier 0,0 reden om ajax te gaan gebruiken eigenlijk.

Roomba E5 te koop


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik wil de pagina namelijk niet verversen...

Dan zit je nog met het probleem hoe je naar een volgende pagina kan gaan en toch het form kan submitten... toch?

  • Speedpete
  • Registratie: December 2001
  • Laatst online: 14-11 12:28

Speedpete

was barman

Twee submit knoppen met elk een andere naam in 1 formulier is toch een oplossing?

code:
1
2
3
<INPUT type="hidden" name="page" value="5">
<INPUT type="submit" name="submit" value="Vorige">
<INPUT type="submit" name="submit" value="Volgende">


Formulier laten verwerken door de pagina zelf en de te laden pagina laten bepalen:

code:
1
2
3
4
5
6
7
if($_POST['submit'] == "Vorige")
  $load = $_POST['page'] - 1;
else
  $load = $_POST['page'] + 1;

$previous = $load-1;
$next = $load+1;


Even de limieten afvangen (eerste / laatste pagina) en je zou vooruit moeten kunnen. Ajax lijkt mij inderdaad ook niet nodig.
ViNyL schreef op woensdag 09 januari 2008 @ 15:30:
Ik wil de pagina namelijk niet verversen...
Je kan het formulier laten submitten naar een (i)frame? Ook kan je een javascript het formulier laten submitten waarna je alle mogelijkheden nog hebt om via een ajax-aanroep je div te refreshen.

[ Voor 22% gewijzigd door Speedpete op 09-01-2008 15:37 ]

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Welke pagina laat je dit verwerken dan doen?

Want je geeft bij je form toch op wat je action is? dus bv pagina1.php of pagina2.php en die kan je toch niet on the fly aanmaken als je niet weet waar iemand op wil gaan klikken??

  • Speedpete
  • Registratie: December 2001
  • Laatst online: 14-11 12:28

Speedpete

was barman

ViNyL schreef op woensdag 09 januari 2008 @ 15:39:
Welke pagina laat je dit verwerken dan doen?
Een verwerkingspagina :P

Je maakt een script dat de form-data voor je opslaat (in db, sessie, cookie, wat je wil). Dat script roep je aan via:
code:
1
<form name="form" method="post" action="verwerking.php" target="myFrame">


En als je werkt met een javascriptje dat het formulier voor je submit, dan kan je de submitknoppen achterwege laten en gewoon linkjes gebruiken.

[ Voor 15% gewijzigd door Speedpete op 09-01-2008 15:46 ]

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Hmm, als het gaat om een formulier voor een webshop ofzo zou je ook kunnen overwegen om alle fields te tonen op één pagina, in verschillende <div>'s ofzo met de display op none. Met 'Volgende' wissel je dan simpelweg van display, en pas bij de allerlaatste pagina vervang je de 'Volgende'-knop door een submitbutton. :)

We are shaping the future


  • Speedpete
  • Registratie: December 2001
  • Laatst online: 14-11 12:28

Speedpete

was barman

Alex) schreef op woensdag 09 januari 2008 @ 15:47:
Hmm, als het gaat om een formulier voor een webshop ofzo zou je ook kunnen overwegen om alle fields te tonen op één pagina, in verschillende <div>'s ofzo met de display op none. Met 'Volgende' wissel je dan simpelweg van display, en pas bij de allerlaatste pagina vervang je de 'Volgende'-knop door een submitbutton. :)
Da's ook een prima oplossing (en makkelijker). Maar hangt een beetje af van de wensen van TS natuurlijk :P

[ Voor 5% gewijzigd door Speedpete op 09-01-2008 15:49 ]

Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ja daar heb ik ook nog aan zitten denken inderdaad..

Ik heb in ieder geval weer genoeg ideeen om verder op te borduren!

Mijn dank is reuze!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Kijk ook eens naar input type "hidden". Dat is een onzichtbaar veld (wel zichtbaar in de paginabron) dat wordt meegezonden bij een submit, waarmee je heel handig informatie kunt behouden binnen een multi-part form.

edit: die Hidden div oplossing is ook wel leuk bedacht, maar minder 'netjes' (denk aan mensen zonder Javascript of CSS).

[ Voor 22% gewijzigd door Bozozo op 09-01-2008 16:16 ]

TabCinema : NiftySplit


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Bozozo schreef op woensdag 09 januari 2008 @ 16:15:
edit: die Hidden div oplossing is ook wel leuk bedacht, maar minder 'netjes' (denk aan mensen zonder Javascript of CSS).
Een mogelijke oplossing daarvoor is eerst alle delen laten tonen en zodra de DOM ready is (jQuery heeft daar een mooie functie voor) alle divs laten hiden behalve de eerste :)

We are shaping the future

Pagina: 1