if exists

Status
Niet open voor verdere reacties.

bertkamphuis

Gebruiker
Lid geworden
17 apr 2009
Berichten
14
Hallo,

Ik heb het volgende probleem.
Ik heb een formulier gemaakt, met action naar dezelfde pagina:
Code:
<?php
session_start();

if ($_POST['verzenden'] =='verzenden') { 

$waarde=array($_POST['vraag1'], $_POST['vraag2']);
$_SESSION["antwoord"] = $waarde;
}
if (count($_SESSION['antwoord']) > 0)
{

    $tstring = implode('|' , $_SESSION['antwoord']); 
    echo $tstring;
}
?>
<form action="test.php" method="POST">
<br><input type="text" name="vraag1" />
<br><input type="text" name="vraag2" />
<br><input type="submit" name="verzenden" value="verzenden">
</form>
zoals je ziet zet het script de waarden uit de tekstvelden in een array.
Ik wil het nu echter zó krijgen, dat het script telkens opnieuw uitgevoerd wordt en de waarden uit de velden toevoegt aan de array. Dus ik vul het in, bv met waarden 1 en 2, vervolgens klik ik op verzenden, dan vul ik het nog een keer in met de waarden 3 en 4, en vervolgens wil ik de waarden 1 t/m 4 op mijn scherm zien te krijgen.

Weet iemand hoe ik dit voor elkaar krijg?

alvast bedankt
 
Hallo,

Ik heb het volgende probleem.
Ik heb een formulier gemaakt, met action naar dezelfde pagina:
Code:
<?php
session_start();

if ($_POST['verzenden'] =='verzenden') { 

$waarde=array($_POST['vraag1'], $_POST['vraag2']);
$_SESSION["antwoord"] = $waarde;
}
if (count($_SESSION['antwoord']) > 0)
{

    $tstring = implode('|' , $_SESSION['antwoord']); 
    echo $tstring;
}
?>
<form action="test.php" method="POST">
<br><input type="text" name="vraag1" />
<br><input type="text" name="vraag2" />
<br><input type="submit" name="verzenden" value="verzenden">
</form>
zoals je ziet zet het script de waarden uit de tekstvelden in een array.
Ik wil het nu echter zó krijgen, dat het script telkens opnieuw uitgevoerd wordt en de waarden uit de velden toevoegt aan de array. Dus ik vul het in, bv met waarden 1 en 2, vervolgens klik ik op verzenden, dan vul ik het nog een keer in met de waarden 3 en 4, en vervolgens wil ik de waarden 1 t/m 4 op mijn scherm zien te krijgen.

Weet iemand hoe ik dit voor elkaar krijg?

alvast bedankt


$variable[$_Session[a]++;][vraag]
$_session[vraagnr][pogingnr][antwoord]=antwoord
zoiets maar dan zonder mijn snelle schrijffouten
 
Als je de waardes van een array uit wilt lezen moet je zowiezo bekend maken welke plekken van een array je wilt uitlezen, anders werkt het niet.
Dus ipv:
PHP:
$waarde=array($_POST['vraag1'], $_POST['vraag2']);
$_SESSION["antwoord"] = $waarde;
moet dit:
PHP:
$waarde=array($_POST['vraag1'], $_POST['vraag2']);
$_SESSION["antwoord"] = $waarde[0] + $waarde[1];
Hierdoor zet je alle antwoorden direct naast ekaar. Dus:
PHP:
$_POST['vraag1']; // vraag 1 is bijvoorbeeld: 1
$_POST['vraag2']; // vraag 2 is bijvoorbeeld: 2
$waarde=array($_POST['vraag1'], $_POST['vraag2']);
$_SESSION["antwoord"] = $waarde[0]." ".$waarde[1];

echo  $_SESSION["antwoord"] // Dit geeft dan 12, aangezien 1 en 2 direct naast elkaar worden gezet.

Om nu een korte oplossing te geven voor jou probleem te geven kan je het volgende doen:
PHP:
<?php
session_start();
$num_antwoord= 2; // Aantal vragen

if ($_POST['verzenden'] =='verzenden') { 
  $waarde=array($_POST['vraag1'], $_POST['vraag2']);
  /* Stop iedere waarde van de array in een antwoord. */
  for ($i=0; $i<$num_antwoord; $i++) {
    $_SESSION["antwoord"] .= $waarde[$i]." ";
  }
}
/* Controleer of er een antwoord ingevoerd is. */
if (empty!($_SESSION['antwoord'])) {
  echo $_SESSION['antwoord'];
}
?>
<form action="test.php" method="POST">
<br><input type="text" name="vraag1" />
<br><input type="text" name="vraag2" />
<br><input type="submit" name="verzenden" value="verzenden">
</form>
Zet alles in een for-lus om ieder antwoord achter elkaar te zetten. Controleer dan of alles
 
in ieder geval bedankt dat jullie de moeite voor mijn vraag hebben gedaan, maar ik kom er toch niet helemaal uit. Ik krijg nu een foutmelding dat de '!' onverwacht is....
 
kan je misschien de gehele error en je gehele code tot nu toe posten dan kunnen we kijken wat er aan de hand is

groeten vreugde
 
bij deze:
Code:
<?php
session_start();
$num_antwoord= 2; // Aantal vragen
 
if ($_POST['verzenden'] =='verzenden') { 
  $waarde=array($_POST['vraag1'], $_POST['vraag2']);
  /* Stop iedere waarde van de array in een antwoord. */
  for ($i=0; $i<$num_antwoord; $i++) {
    $_SESSION["antwoord"] .= $waarde[$i]." ";
  }
}
/* Controleer of er een antwoord ingevoerd is. */
if (empty!($_SESSION['antwoord'])) {
  echo $_SESSION['antwoord'];
}
?>
<form action="test.php" method="POST">
<br><input type="text" name="vraag1" />
<br><input type="text" name="vraag2" />
<br><input type="submit" name="verzenden" value="verzenden">
</form>
Bovenstaande code kun je hier testen.

Je ziet dus dat de'!' niet goed is. Ik heb niet zoveel verstand van php, dus hoop ik dat één van jullie weet hoe het wel moet. Ik zat zelf te denken aan hoe toevoegen van de gegevens aan een array als deze bestaat, als deze array niet bestaat moet hij aangemaakt worden.
 
PHP:
/* Controleer of er een antwoord ingevoerd is. */
if (empty!($_SESSION['antwoord'])) {
  echo $_SESSION['antwoord'];
}

dit klopt niet, de syntax is zo:

PHP:
if (!empty($_SESSION['antwoord'])) {
  echo $_SESSION['antwoord'];
}

ik hoop dat dit helpt :)
 
hmm, ik ben echt heel slecht hierin. Het volgende probleem is al weer aan de orde, ik krijg de functie implode er niet in verwerkt:(
Code:
<?php
session_start();
$num_antwoord= 2; // Aantal vragen
 
if ($_POST['verzenden'] =='verzenden') { 
  $waarde=array($_POST['vraag1'], $_POST['vraag2']);
  /* Stop iedere waarde van de array in een antwoord. */
  for ($i=0; $i<$num_antwoord; $i++) {
    $_SESSION['antwoord'] .= $waarde[$i]." ";
  }
}
/* Controleer of er een antwoord ingevoerd is. */
if (!empty($_SESSION['antwoord'])) {
  $antwoorden=$_SESSION['antwoord'];
  echo $antwoorden;
  echo implode("|",$antwoorden);
}
?>
<form action="helpmij.php" method="POST">
<br><input type="text" name="vraag1" />
<br><input type="text" name="vraag2" />
<br><input type="submit" name="verzenden" value="verzenden">
</form>
de foutmelding die gegeven wordt is: Warning: implode() [function.implode]: Invalid arguments passed in......

wat doe ik verkeerd?
 
De foutmelding die je krijg geen aan dat er een foute parameter is gebruikt bij de functie implode.

Bij implode wordt het volgende verwacht
PHP:
implode(string $glue, array $pieces);

Zoals je kan zien wordt er een array verwacht. Jij voert geen array in alleen een string.
Hierdoor krijg jij deze foutmelding. Dus een goede tip als je een functie gebruikt, zoek deze even op google en hierdoor krijg je zoveel antwoorden en uitleg erover dat je weet wat deze functie doet.

Om jou te helpen kijk eens naar de volgende pagina
http://php.net/manual/en/function.implode.php

groeten vreugde
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan