Indien geen GET dan automatisch een waarde
Nu wil ik als de pagina items geen link krijgt maar gewoon items.php krijgt dat hij toch een waarde kiest.
Het zal dus iets moeten worden als (hieronder) maar hoe krijg ik dan die waarde over.
Dit is het begin van de pagina items.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
session_start();
if(isset($_GET['filter']))
{
$_SESSION['filter'] = $_GET['filter'];
header( 'Location: /items?page=1', true, 303 );
exit( );
}
elseif(!isset($_GET['filter']) and isset($_GET['page']))
{
if($_GET['page'] == 1)
{
if(isset($_GET['searched']))
{
unset($_SESSION['filter']);
} else
{
$_SESSION['filter'] = $_SESSION['filter'];
}
} else
{
$_SESSION['filter'] = $_SESSION['filter'];
}
} else
{
unset($_SESSION['filter']);
}
?>
session_start();
if(isset($_GET['filter']))
{
$_SESSION['filter'] = $_GET['filter'];
header( 'Location: /items?page=1', true, 303 );
exit( );
}
elseif(!isset($_GET['filter']) and isset($_GET['page']))
{
if($_GET['page'] == 1)
{
if(isset($_GET['searched']))
{
unset($_SESSION['filter']);
} else
{
$_SESSION['filter'] = $_SESSION['filter'];
}
} else
{
$_SESSION['filter'] = $_SESSION['filter'];
}
} else
{
unset($_SESSION['filter']);
}
?>
Je hebt 3 $_GET waardes namelijk: page, filter en searched. Zijn deze dan alle 3 leeg?
Waarom gebruik je $_REQUEST ipv $_GET?
sorry, had het niet goed staan en heb het gewijzigd... maar bij bovenstaande met de GET dan krijg ik nog steeds geen overzicht.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
//Doe hier je ding, wanneer de waardes leeg zijn.
} esle {
// Doe hier je ding, wanneer de waardes wel gevult zijn
};
?>
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
//Doe hier je ding, wanneer de waardes leeg zijn.
} esle {
// Doe hier je ding, wanneer de waardes wel gevult zijn
};
?>
Gewijzigd op 06/08/2012 10:38:35 door Chris PHP
Oke maar hoe krijg ik de waardes nu gevult dat hij wel het overzicht geeft?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
$_GET['filter'] = "2103";
$_GET['page'] = "1";
$_GET['searched'] = "searched";
} esle {
// Doe hier je ding, wanneer de waardes wel gevult zijn
};
?>
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
$_GET['filter'] = "2103";
$_GET['page'] = "1";
$_GET['searched'] = "searched";
} esle {
// Doe hier je ding, wanneer de waardes wel gevult zijn
};
?>
Let wel dat je hier de 1 als string wegzet en niet als integer (cijfer). Je kunt daar ook gewoon 1 neerzetten zonder de "", dan is het wel een integer.
Gewijzigd op 06/08/2012 10:38:20 door Chris PHP
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
Gewijzigd op 06/08/2012 10:36:07 door Kris Peeters
Kris Peeters op 06/08/2012 10:35:53:
Ik veronderstel dat je dit bedoelt?
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
Is dat niet precies het zelfde als wat ik zeg?
Warning: Invalid argument supplied for foreach() in items.php on line 400
en de regel is dan:
foreach( $_SESSION['filter'] as $sFilter )
Chris NVT op 06/08/2012 10:37:30:
Is dat niet precies het zelfde als wat ik zeg?
Kris Peeters op 06/08/2012 10:35:53:
Ik veronderstel dat je dit bedoelt?
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
Is dat niet precies het zelfde als wat ik zeg?
Nee, daar stonden enkele = tekens
Piet Mulder op 06/08/2012 10:40:06:
Als ik dat doe met de waardes doorgeven dan geeft hij verder op een foutmelding:
Warning: Invalid argument supplied for foreach() in items.php on line 400
en de regel is dan:
foreach( $_SESSION['filter'] as $sFilter )
Warning: Invalid argument supplied for foreach() in items.php on line 400
en de regel is dan:
foreach( $_SESSION['filter'] as $sFilter )
Dat komt omdat je in je script session gebruikt daarvooer, dus zul je dat ook in dat stukje mee moeten nemen. Anders krijg je dus die foutmelding.
Toevoeging op 06/08/2012 10:50:32:
Kris Peeters op 06/08/2012 10:47:15:
Nee, daar stonden enkele = tekens
Chris NVT op 06/08/2012 10:37:30:
Is dat niet precies het zelfde als wat ik zeg?
Kris Peeters op 06/08/2012 10:35:53:
Ik veronderstel dat je dit bedoelt?
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
Is dat niet precies het zelfde als wat ik zeg?
Nee, daar stonden enkele = tekens
Sorry maar ik zie toch echt dubbele ==, en ik heb er alleen maar typefouten verbeterd, niets aan de code.
Piet Mulder op 06/08/2012 11:02:03:
Omdat dit ook niet werkt. Je 'standaard' waardes worden nergens weergegeven.
Toevoeging op 06/08/2012 11:03:57:
P.S. Waarom spring je van een methode compleet over naar een andere?
Dus probeer het zo eens.
Notice: Undefined index: filter in items.php on line 2
Met een notice zou het wel gewoon kunnen werken.
Nu zeg je: als er geen $_GET is... maak die aan. Klaar :D
Als er wel een $_GET is... ga dan allerlei dingen doen en etc.
Jij moet dus hebben:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
$_SESSION['filter'] = $_GET['filter'] = 2103;
$_GET['page'] = 1;
$_GET['searched'] = "searched";
}
// Doe hier je ding, wanneer de waardes wel gevult zijn
?>
if ($_GET['filter'] == "" && $_GET['page'] == "" && $_GET['searched'] == "") {
$_SESSION['filter'] = $_GET['filter'] = 2103;
$_GET['page'] = 1;
$_GET['searched'] = "searched";
}
// Doe hier je ding, wanneer de waardes wel gevult zijn
?>
Dus zonder de else{}.
En kijk even wat ik doe met $_SESSION['filter'] en $_GET['filter']...
Gewijzigd op 06/08/2012 11:52:52 door Eddy E