Toon posts:

[php] variabelen meenemen naar dezelfde pagina.

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

Verwijderd

Topicstarter
Als ik een link maak naar dezelfde pagina (wat moet bij POST bijv.) dan wil ik ook de variabelen behouden.
Als ik dus doe:
<? <a href='zelfdepagina.php?var=$var'>link</a> ?>

dan neemt hij de variable niet mee, maar dan is de variabele veranderd naar '$var' Dit is iegenlijk best logisch, want je kent gewoon de string $var toe aan de variablele var. Maar hoe zorg ik dat dit niet gebeurt en hij toch de variablen weer meeneemt na de 'refresh'??
Als je namlijk geen variabele invoert in de link, onthoud hij hem ook niet.

gr. daNpy

  • chaozz
  • Registratie: Juni 2000
  • Laatst online: 23-08 22:57
Op donderdag 07 februari 2002 12:27 schreef daNpy het volgende:
Als ik een link maak naar dezelfde pagina (wat moet bij POST bijv.) dan wil ik ook de variabelen behouden.
Als ik dus doe:
<? <a href='zelfdepagina.php?var=$var'>link</a> ?>

dan neemt hij de variable niet mee, maar dan is de variabele veranderd naar '$var' Dit is iegenlijk best logisch, want je kent gewoon de string $var toe aan de variablele var. Maar hoe zorg ik dat dit niet gebeurt en hij toch de variablen weer meeneemt na de 'refresh'??
Als je namlijk geen variabele invoert in de link, onthoud hij hem ook niet.

gr. daNpy
in ASP gaat het zo:

Response.Write("<a href=page.asp?var=" & $var & ">Klik hier</a>")

het werkt vast ongeveer hetzelfde in PHP.

chaozz.nl | RetroGameCouch


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
echo ""; :?

  • Grum
  • Registratie: Juni 2001
  • Niet online
een iets duidelijkere omschrijving zo wel zo handig zijn :)

1/ wat heb je?
2/ wat wil je?
3/ wat lukt niet?
4/ wat gebeurt er dan?
5/ wat heb je al geprobeerd?

Verwijderd

Ja als je refreshed dan ben je je variabele kwijt dus je kunt:

-Hem opslaan in bv een session
-Hem opnieuw setten in je form, met een hidden field

Verwijderd

Topicstarter
1. Ik heb het volgende script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
 $dbnaam='localweb';
 mysql_connect();
 $dbserver= mysql_connect();
 mysql_select_db('localweb', $dbserver);

 echo "Een bericht verwijderen uit de database : <b>$tb</b><br><hr>"; 
 echo "<table><tr><td width='50'><center><b><i>ID</td><td width='300'><center><b><i>Onderwerp</td><td width='300'><center><b><i>Auteur</td><td width='100'><center><b><i>Datum</td></tr>";
 $sql = "SELECT * FROM $tb ORDER BY id DESC";
 $resultaat = mysql_query($sql);
 while ($record = mysql_fetch_object($resultaat)) 
 { echo "<table><tr><td width='50'><center>{$record->id}</td><TD width='300'><center> <a href='/localweb/nieuws/bericht.php?id={$record->id}'>{$record->subject}</a></TD><TD width='300'><center> $record->naam</td><td width='100'><center> {$record->datum}</td></table>\n"; }

 echo "<br><form method='post' action='del.php?tb= [b]$tb[/b] '>Voer het ID in van het bericht dat u wilt verwijderen: <input type='text' name='del' size='2'> <input type='submit' name='submit' value='delete uit tabel $tb'></form><hr>"; 
 if (isset ($submit)) {
error_reporting(E_ALL);
$sql = "DELETE FROM $tb WHERE id='$del'";
$res = mysql_query($sql) or die ('Error :: "'.$sql.'" :: '.mysql_error());
 // echo $sql.' - '.mysql_error().'-'.mysql_errno().'-'.$res.'-'.gettype($res).'-'.print_r($GLOBALS);
mysql_query($sql) ; }  <a href='manager.php?db=$tb'>manager</a> 
?>

Dat waar dus $tb in het vet staat werkt niet. Als ik de pagina open klopt alles, omdat ik via een adnere pagina een waarde aan $tb toeken. Nu moet hij nadat je iets verwijdert hebt dus de waarde van $tb weer meenemen naar de volgende pagina, wat dezelfde pagina is. Dat is het probleem: .php?tb=$tb werkt niet.... Ik wil niet sessie met werken aub, dat maakt het nog complexer..

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 13:00 schreef Michiel het volgende:
Ja als je refreshed dan ben je je variabele kwijt dus je kunt:

-Hem opslaan in bv een session
-Hem opnieuw setten in je form, met een hidden field
Zo: <input type='hidden' name='tb' value='$tb'> ????

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
$dbnaam='localweb';
mysql_connect();
$dbserver= mysql_connect();
mysql_select_db('localweb', $dbserver);

echo "Een bericht verwijderen uit de database : <b>$tb</b><br><hr>"; 
echo "<table><tr><td width='50'><center><b><i>ID</td><td width='300'><center><b><i>Onderwerp</td><td width='300'><center><b><i>Auteur</td><td width='100'><center><b><i>Datum</td></tr>";
$sql = "SELECT * FROM $tb ORDER BY id DESC";
$resultaat = mysql_query($sql);
while ($record = mysql_fetch_object($resultaat)) 
{ echo "<table><tr><td width='50'><center>{$record->id}</td><TD width='300'><center> <a href='/localweb/nieuws/bericht.php?id={$record->id}'>{$record->subject}</a></TD><TD width='300'><center> $record->naam</td><td width='100'><center> {$record->datum}</td></table>\n"; }

echo "<br><form method='post' action='del.php?tb= $tb '>Voer het ID in van het bericht dat u wilt verwijderen: <input type='text' name='del' size='2'> <input type='submit' name='submit' value='delete uit tabel $tb'></form><hr>"; 
if (isset ($submit)) {
error_reporting(E_ALL);
$sql = "DELETE FROM $tb WHERE id='$del'";
$res = mysql_query($sql) or die ('Error :: "'.$sql.'" :: '.mysql_error());
// echo $sql.' - '.mysql_error().'-'.mysql_errno().'-'.$res.'-'.gettype($res).'-'.print_r($GLOBALS);
mysql_query($sql) ; } <a href='manager.php?db=$tb'>manager</a> 
?>

Zet je scipts voortaan ff tussen [php ] tags, das wel zo leesbaar!

Verwijderd

Maar zoals ik het zie heb je een aparte delete-pagina?? Waarom zo ingewikkeld? Als je nou es dit bevenaan je pagina zet:
PHP:
1
2
3
4
5
6
<?
if (isset($delete)) {
$sql="delete from blaat where id=$delete";
mysql_query($sql);
}
?>

En dit gewoon aanroepen met een linkje zoals:

<A HREF='admin.php?delete=$id'>Delete</A>

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 13:07 schreef Michiel het volgende:

Zet je scipts voortaan ff tussen [php ] tags, das wel zo leesbaar!
ow ja, sorry!!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

<form method='post' action='del.php?tb=$tb
Of je gebruikt de predefined variables van php ?
$HTTP_POST_VARS
An associative array of variables passed to the current script via the HTTP POST method.

$_POST
An associative array of variables passed to the current script via the HTTP POST method. Automatically global in any scope. Introduced in PHP 4.1.0.

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 13:12 schreef Michiel het volgende:
Maar zoals ik het zie heb je een aparte delete-pagina?? Waarom zo ingewikkeld? Als je nou es dit bevenaan je pagina zet:
PHP:
1
2
3
4
5
6
<?
if (isset($delete)) {
$sql="delete from blaat where id=$id";
mysql_query($sql);
}
?>

En dit gewoon aanroepen met een linkje zoals:

<A HREF='admin.php?delete=echtwel$id=$id'>Delete</A>
Daarvoor zijn toch juist die mooie knoppen bij een form? Ik d8 dat het daarvoor was :?
Is wel zo mooi tenminste :)

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 13:14 schreef TheRookie het volgende:

[..]

Of je gebruikt de predefined variables van php ?
[..]
Ja die lijken me wel beter!!
Kan iemand een voorbeeld geven zodat ik eruit kan halen hoe het ongeveer werkt??
Ik zal vast wat proberen.

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Als je op die pagina iets verder naar beneden scrollt staan er allemaal "User Contributed Notes" inclusief voorbeeldjes ;)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
/*
The $HTTP_POST_VARS environment comes in handy when trying to pass
variables to an embedded Perl Script. Passing variables to an embedded
Perl Script via GET / $QUERY_STRING is not the greatest as IE4/5 seems to
truncate URLS longer than 2048 characters .. and passing massive amounts
of data through the URL is kind of messy.

The $HTTP_POST_VARS is not a string like $QUERY_STRING, it is an
associative array .. therefore you must convert its contents to a sting.
Heres a quick method of doing so:
*/
while(list($key, $val) = each($HTTP_POST_VARS)) {
$key = stripslashes($key);
$val = stripslashes($val);
$key = urlencode($key);
$val = urlencode($val);
$postString .= "$key=$val&amp;";
  }

virtual("cgi-bin/perl.pl?$postString");
?>

Verwijderd

Topicstarter
Op donderdag 07 februari 2002 13:41 schreef TheRookie het volgende:
Als je op die pagina iets verder naar beneden scrollt staan er allemaal "User Contributed Notes" inclusief voorbeeldjes ;)
Sorry, niet gezien |:(
Maareh snappen doe ik het ook niet hard :( Ik wil maar 1 variabele meenemen naar de volgende pagina, dat dezelfde pagina is en dus ook dezelfde variabele. oftewel, de variabele in de pagina moet zijn waarde behouden.
Kan dat niet gewoon met sprintf en dus %s oid??
hmm nee dus :( :'(
sprintf werkt alleen bij een sql query :?
ff testen

Verwijderd

Topicstarter
wtf :? :? :? :? :? :? :?
Ik voer dus gewoon weer $tb in na wat geprobeerd t hebben, en nu doet ie't wel |:( |:( |:( |:( |:( |:(

Nu heb ik helaas nog 1 probleem: je voert een id in, je klikt op verwijder, de pagina refresht en het bericht staat er nog. refresh de pagina OF duw nogmaals op de knop zonder iets in te vullen, en hij is weg!!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

In de Header "No-Cache" meesturen ?

Verwijderd

PHP:
1
2
3
<?
echo "<a href=\"pagina.php?variabelenaam=$variabelenaam\">link text</a>";
?>

is bij mij nog nooit fout gegaan

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

nou wil ie er alleen nog #Anchor bij hebben :P
PHP:
1
2
3
<?
echo "<a href=\"pagina.php?variabelenaam=$variabelenaam#PlekOmNaarTeSpringen\">link text</a>";
?>

dus ;)

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

neem globals:
PHP:
1
2
3
<?
global $var;
?>

en:

doe:
PHP:
1
2
3
4
<?
$bla=("blabla.html#bla");
<A HREF="bla.html?$bla">
?>

:)

Sundown Circus

Pagina: 1