variabele in opvragen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Not

Martijn Not

11/12/2010 14:41:44
Quote Anchor link
Hallo allemaal,

Ben een newb dus vandaar deze makkelijke vraag :P

Ik heb een formulier gemaakt op index.php en bij het 'versturen' zet hij de gegevens in een database (via toevoegen.php). Nu heb ik in toevoegen o.a. het volgende staan:

$added = "ja";
$URL="index.php";
header ("Location: $URL");

zodat hij mij weer terug stuurt naar mijn index.php. In mijn index staat dan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if ($added == "ja") {
    echo 'Opdracht toegevoegd';
}

$added = 'nee';
?>


Zodat ik een tekstje krijg dat hij is toegevoegd als ik vanuit die toevoegen.php kom. Als ik gewoon naar index.php ga moet hij er natuurlijk niet meteen komen te staan.
Dit werkt niet.. op de een of andere manier wordt $added niet doorgegeven aan index.php. Is dit mogelijk?, want ik probeer ook maar wat :P
 
PHP hulp

PHP hulp

24/11/2024 07:46:36
 
Vincent Huisman

Vincent Huisman

11/12/2010 14:42:54
Quote Anchor link
sessions
 
Martijn Not

Martijn Not

11/12/2010 14:59:13
Quote Anchor link
Ok ik heb nu in index.php:

if ($_GET['added'] == '1') {
echo 'Opdracht toegevoegd';
}

en in toevoegen.php:

$URL="index.php?added=1";
header ("Location: $URL");

Denk niet dat daar sessions voor nodig zijn. Maar hoe zorg ik ervoor dat ?added=1 uit de URL verdwijnt zodra hij "Opdracht toegevoegd" heeft laten zien? Want als ik nu naar een ander menuknopje ga en weer naar home staat die tekst er nog steeds..
 
Martijn Not

Martijn Not

12/12/2010 15:54:31
Quote Anchor link
Ok ik heb sessions gebruikt maar het werkt niet -__-.

In toevoegen.php:

session_start();
$_SESSION['added'] = 1;

en index.php:

if(isset($_SESSION['added'])) {
echo "Opdracht toegevoegd";
//$_SESSION['added'] = 0;
}
 
Ozzie PHP

Ozzie PHP

12/12/2010 15:57:30
Quote Anchor link
Hij komt nu iedere keer in de if terecht omdat isset kijkt of de variabele geset is.

$_SESSION['added'] = 0;

Met bovenstaande set je de variabele op 0, dus deze is nog steeds geset.
Probeer eens zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
$_SESSION['added'] = true;

en index.php:

if($_SESSION['added']) {
  echo "Opdracht toegevoegd";
  $_SESSION['added'] = false;
}

?>
 
Martijn Not

Martijn Not

12/12/2010 17:28:24
Quote Anchor link
Top, werkt. Bedankt.

Een nieuwe vraag: Ik controleer nu in mijn toevoegen.php of alle velden zijn ingevuld. Als dat niet zo is geeft hij 'echo "veld niet ingevuld"'. Nu komt dat alleen op een nieuwe blanko pagina te staan terwijl ik die tekst eigenlijk op dezelfde pagina onder het formulier wil hebben. Nu kan ik dit ook met sessions doen volgens mij, maar dat zou ik header(formulierblabla.php) gebruiken ofzo en dan worden de velden weer leeg..
Is er een oplossing? :)
 
Gerhard l

gerhard l

12/12/2010 17:47:41
Quote Anchor link
je echod gewoon je formulier met daarboven de foutmeldingen indien nodig met if's
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
<?php
if($_SERVER['request_method'] == POST){
 //formulier is gepost
  if(!isset($_POST['iets'])){
     //iets is ingevuld
   }
   else{
      //iets is niet ingevuld
   }
}

else{
}

//echo hier je formulier
echo '';

?>
Gewijzigd op 12/12/2010 17:52:09 door gerhard l
 
Martijn Not

Martijn Not

12/12/2010 21:54:36
Quote Anchor link
Ja maar met dat formulier bedoel ik gewoon een hele webpagina.. met menu enzo. Kan je mij uitleggen wat dat script van jou precies doet? Ik snap dit zinnetje niet helemaal namelijk:

if($_SERVER['request_method'] == POST){

en bovendien gaat het mij niet om het controleren van de velden, daar heb ik al iets op. Het enige is dat ik een error wil krijgen als er iets niet is ingevuld (dat deel heb ik al) en dat deze error gewoon onder de 'verzend knop' komt te staan van het formulier. Als ik op die knop druk gaat hij naar een php file die controleert of alles is ingevuld en is dat niet zo dan heb ik "echo 'error...' ", maar dat komt natuurlijk op een lege witte pagina. Die error moet gewoon op die formulierpagina onderaan worden geplakt :/

Toevoeging op 12/12/2010 21:57:57:

Heb nog eens naar dat script gekeken en ik snap hem toch. Het enige is dan dat ik 2 keer hetzelfde formulier in m'n script moet zetten en ik denk dat dat toch makkelijker moet kunnen. Bovendien wil ik ook dat de wél ingevulde velden ook ingevuld blijven. Als ik dit script gebruik zullen ze weer leeg raken.
 
Jordi Kroon

Jordi Kroon

12/12/2010 23:01:03
Quote Anchor link
Hoezo heb je 2 x het formulier nodig?

Function form() {
Echo '
// je formulier hier
';
}

Het opvragen doe je met form();

Toevoeging op 12/12/2010 23:03:19:

Je zou met sessies kunnen werken als je wilt dat ze ingevuld blijven
 
Martijn Not

Martijn Not

13/12/2010 09:19:39
Quote Anchor link
Ik snap nog steeds niet helemaal wanneer if($_SERVER['request_method'] == POST){
wordt aangeroepen. Als ik op mijn formulier.php pagina Zend druk gaat hij naar toevoegen.php waar de velden worden gecontroleerd. Zijn ze goed, dan gaat hij door naar index.php, mijn home pagina. Als ze niet goed zijn moet ik hem weer terug laten gaan naar de formulier pagina. Ik snap niet helemaal wanneer dat request_method dat wordt geset..
 



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.