Avatar billede compac Seniormester
14. april 2007 - 16:09 Der er 13 kommentarer og
1 løsning

Overfør variabel til næste side(r)

Jeg stillede forleden et spørgsmål om overførsel af variabler mellem forskellige formularer i forskellige filer.
Jeg prøver at uddybe spørgsmålet lidt:
Jeg vil sende oplysningen om hvilket felt der er afkrydset i min checkbox videre. Af hensyn til resten af programmet kan jeg ikke bruge action i form-linien.
Det er formentlig ikke mulig, at bruge en link til at løse problemet?

Her er et udsnit af programmet:
<html>
<head>
</head>
<body>
<form action="" method="post" name="">
<?php
          $sql="select sn,data from $branch order by sn";
          $result=mysql_query($sql,$connection) or die(mysql_error());
          while($row=mysql_fetch_array($result))
          {
          ?>
<tr>
<td width="37" align="center">
<input type="checkbox" name="ref[]" value="<?php echo $row["sn"]; ?>"></td>
      <?php
        }
        ?>
<input type="checkbox" name="ref[]" value="<?php echo $row["sn"]; ?>">
<input type="hidden" name="ids" value=<?php echo $ids; ?>;
<input type="submit" name="editor" value="editor" />
<?php
if(isset($_POST['editor']))  {
    if ( count( $_POST['ref'] ) > 0 )  {
      $ids = join( ",", $_POST['ref'] );
}
}
?>
</form>
</body>
</html>

Jeg kan se at resulatet er OK i denne del (ved hjælp af echo-linier). Problemet er at få ført værdierne videre.
Avatar billede Slettet bruger
14. april 2007 - 16:43 #1
hvad med sessions?
Avatar billede compac Seniormester
14. april 2007 - 16:49 #2
Jeg er ikke stiv i sessions. Er der andre muligheder?
Avatar billede nixir Nybegynder
14. april 2007 - 19:32 #3
hvad mener du med du ikke er "stiv" i sessions?
Avatar billede fixbabe Nybegynder
14. april 2007 - 20:19 #4
Brug som sagt sessions det løser dit problem
Avatar billede nixir Nybegynder
14. april 2007 - 21:43 #5
Kan ikke se andre løsninger end session...

husk dette før du henter / ændre / gemmer noget i brugerens session:
session_start();

session fungerer ligesom almindelige strenge der gemmes, forskellen ligger i at de kan kaldes frem igen. Sådan gemmes et id fx:

<?php
session_start(); //Behøves kun at blive kaldt en gang pr. dokument der åbnes
$_SESSION['id'] = $id_der_skal_gemmes;
?>

Når du så skal hente resultatet gør du således:

<?php
session_start();
echo 'På sidste side valgte du id: '.$_SESSION['id']; // Eller hvordan du nu skal bruge det ;)

$id = $_SESSION['id']; //Brug/kald dine gemte informationer som du vil :)
?>
Avatar billede johan.o Nybegynder
14. april 2007 - 22:03 #6
Jeg så godt dit tidligere spørgsmål og jeg forstår stadig ikke helt hvad du gerne vil...

Du har vist en form herover. I den form viser du nogle informationer du henter fra en database. Fint nok, det virker. Så vil du sende formen og så siger du at du ikke kan bruge action="et eller andet"...

Hvor sender du formen hen ?
Hvordan ser koden ud på den side du sender til ?
Hvad skal der ske på den side du sender til ?

Mvh. Johan
Avatar billede compac Seniormester
15. april 2007 - 22:53 #7
Side 2 er en php-fil med en editor, hvor man skal indtaste sine tekstdata. Ved at sende $ids oplysningen hertil, bliver der holdt styr på, hvilket punkt der blev valgt i chekboxen.
Jeg sender derefter resultatet af editor-indtastningen videre til side3, hvor jeg vil lægge oplysningerne i en fil med et navn, der indeholder oplysningen om hvilket punkt, der blev valgt i checkboxen. f.eks nyfil + $ids.php.
Så egentlig skal der ikke ske noget fra side1 til side2 - andet end oplysningen skal sendes videre til side3.
Avatar billede nixir Nybegynder
15. april 2007 - 23:10 #8
På den måde!

Jammen så kan du jo bare bruge POST ...

side 1 indeholder det du har skrevet ...

Side to indeholder udover en videre form, nogle <input type="hidden" name="navn_på_dem_fra_fil_1" value="<?php echo $_POST['navn_på_dem_fra_fil_1']; ?>" />

Altså et skjult input pr. felt/checkbox/osv i filerne før...

Det burde gøre det..

EX:
<?php
$sql="select sn,data from $branch order by sn";
$result=mysql_query($sql,$connection) or die(mysql_error());
while($row=mysql_fetch_array($result))
{
?>
<input type="hidden" name="ref[]" value="<?php echo $_POST["ref[]"]; ?>"> //Du ved nok bedre selv hvordan det ser ud ;) -og ved godt jeg skriver en php-kommentar i html ;)
<?php
}
?>
<input type="hidden" name="ids" value="<?php echo $_POST['ids']; ?>" />
<input type="hidden" name="editor" value="<?php echo $_POST['editor']; ?>" />

Noget i den stil ... Så ligger de gemt på side 2 selvom de blev indtastet på side 1 ... uden det skal lagres osv...
Avatar billede johan.o Nybegynder
16. april 2007 - 13:16 #9
Sådan der nixir...right behind you :)..ihvertfald med teorien, har ikke kigget på koden :)

Mvh. Johan
Avatar billede nixir Nybegynder
16. april 2007 - 14:04 #10
Det skal du ikke være ked af - for det har jeg heller ikke ;)

Ej .. det er skrevet ret hurtigt, så der er nok lidt fejl :P Men hvis der er noget der skal uddybes kan det godt fixes :)
Avatar billede compac Seniormester
17. april 2007 - 20:51 #11
Spørgsmålet er så: Hvordan kommer jeg fra side1 til side2?
En submit tager det ikke med, medmindre det står i form-sætningen som en action.
Avatar billede nixir Nybegynder
17. april 2007 - 21:58 #12
Det er jo ikke php men html du har besvær med så ;)

Men jeg kan da godt hjælpe alligevel. På side 1:
<form action="side2.php" method="post" enctype="multipart/form-data">

Side 2:
<form action="side3.php" method="post" enctype="multipart/form-data">

Side 3:
<form action="submit.php" method="post" enctype="multipart/form-data">
Avatar billede nixir Nybegynder
20. april 2007 - 12:34 #13
kan du få det til at virke mester?
Avatar billede compac Seniormester
26. april 2007 - 15:23 #14
Ja, efter at have eksperimenteret lidt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester