Header functie met variabele in url

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas van de Ven

Bas van de Ven

26/07/2015 16:28:00
Quote Anchor link
Een pagina wordt geopend, vanuit een andere pagina, met een variabele in de url nl. http://localhost:8080/Schapendb/WijzigSchaap.php?pstlevnr=200165508823
Als ik de pagina submit wordt deze niet ververst. Dit wil ik bereiken d.m.v. de header functie zodat wijzigingen op de pagina direct zichtbaar zijn na submitten.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
If (isset($_POST['knpSave']))
{
header("Location: http://localhost:8080/Schapendb/WijzigSchaap.php"); }
?>


Omdat de variabele '?pstlevnr=200165508823' ontbreekt verschijnt n.a.v. het volgende stukje script een foutmelding.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
If (empty($_GET['pstlevnr']))
    {
    $levnr = $_POST['txtlevnr'];    }
      else
    {     $levnr = $_GET['pstlevnr']; } ?>


Hoe kan ik een pagina verversen met een variabele in de url ?
Gewijzigd op 26/07/2015 16:31:07 door Bas van de Ven
 
PHP hulp

PHP hulp

21/11/2024 21:08:54
 
Thomas van den Heuvel

Thomas van den Heuvel

26/07/2015 17:11:14
Quote Anchor link
Quote:
Als ik de pagina submit wordt deze niet ververst. Dit wil ik bereiken d.m.v. de header functie zodat wijzigingen op de pagina direct zichtbaar zijn na submitten.

Euh, hoe/wanneer sla je dan je wijzigingen op?

Ik denk dat je eea wat beter kunt organiseren.

Je kunt na afloop van je verwerkstap iemand toch direct doorsturen naar een overzichts- of detailpagina? Ook zou je iemand kunnen terugsturen naar de toevoeg- of wijzigpagina op het moment dat je verstuurde informatie niet door de validatie heenkomt. Stroomlijn je formulier-flow wat meer, zou ik zeggen.

EDIT: om een voorbeeld te geven.

Plaatsen van nieuwe informatie:
formulier voor toevoegen
-- submit -->
verwerking:
validatie ok: sla data op, verwijs door met auto_increment id
validatie niet ok: terug naar formulier

Wijzigen van bestaande informatie:
formulier voor wijzigen (geeft id van item door in form action)
-- submit -->
verwerking:
validatie ok: verwijs door met doorgegeven id
validatie niet ok: terug naar formulier met doorgegeven id
Gewijzigd op 26/07/2015 17:14:55 door Thomas van den Heuvel
 
Bas van de Ven

Bas van de Ven

26/07/2015 18:45:04
Quote Anchor link
Op de pagina waarover ik het heb staat informatie dat ooit is ingevoerd en nu wordt opgevraagd. De informatie kan op deze pagina worden gewijzigd. Met de (submit)knop 'knpSave' worden de gegevens netjes in de database opgeslagen (update dus). Na het submitten (en opslaan dus) zijn de gewijzigde gegevens niet zichtbaar op de pagina. Men wil de wijzigingen op de pagina nl. wel direct zien. Doorsturen naar een andere pagina is dus niet aan de orde.
Veelal realiseer ik dit met de functie header echter nu wil ik een variabele in de url meegeven.

Ik dacht jou voorstel te begrijpen en heb in de form action een variable opgenomen.
Dus voor jou reactie :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form action="WijzigSchaap.php" method="post">


Na jou reactie :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form action= <?php echo"WijzigSchaap.php?pstlevnr=".$levnr;?> method="post">

Waarschijnlijk begrijp ik je verkeerd want hiermee bereik ik niet mijn doelstelling.

Mijn opbouw code:
1. ophalen gegevens uit database

2. uitvoeren code : If (isset($_POST['knpSave']))

3. opbouw pagina (HTML)

Ik haal mijn doelstelling door stap 1 nog een keer uit te voeren tussen stap 2 en 3 echter moet dit anders kunnen volgens mij. Ps. stap 2 kan ik helaas niet voor stap 1 zetten.

Heb je nog ideeën / nadere toelichting ?


Toevoeging op 26/07/2015 19:14:19:

De query uit stap 1 zou ik kunnen splitsen in stap 1 en stap 2a
In stap 1 worden gegevens opgehaald t.b.v. controles in stap 2.
In stap 2a worden gegevens opgehaald voor weergave in stap 3.
 
Thomas van den Heuvel

Thomas van den Heuvel

26/07/2015 21:09:00
Quote Anchor link
Quote:
Na het submitten (en opslaan dus) zijn de gewijzigde gegevens niet zichtbaar op de pagina.

Welke pagina bedoel je hiermee?

Het klopt dat als je op pagina A je formulier hebt staan, en je submit naar pagina B, en daar blijkt, na validatie, het e.e.a. niet te kloppen, en je dus eigenlijk naar A terugmoet met de eerder ingevulde informatie - die verbeterd moet worden, dat je dan iets slims moet verzinnen om deze informatie weer terug te plaatsen. Je zou deze info tijdelijk in je sessie op kunnen slaan.

Als de validatie mislukt, zou je terug kunnen verwijzen naar het formulier met een "error flag", waarbij je probeert de informatie uit te lezen uit je sessie.

Het is overigens "beter" om te POSTen naar een apart script, wat je daarna weer redirect zodat je "dubbelposts" voorkomt bij het verversen van je pagina, zie dit WIKI artikel. Maar ja, daarvoor betaal je dus wel een (kleine) prijs.

Ik zal anders wel een voorbeeldje in elkaar zetten, dat praat wat makkelijker. Ook begrijp ik nog niet helemaal waar je vastloopt, of wat men wil dat er gebeurt.
Gewijzigd op 26/07/2015 21:09:50 door Thomas van den Heuvel
 



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.