problemen met PHP_SELF en variable
ik ben bezig met een zoekpagina op mijn website.
Via een formulier kan ik bepaalde dingen aan klikken voor een zoek opdracht in mysql doen.
Nu heb ik een probleem, ik ontvang wel degelijk mijn variable op mijn verwerkpagina van mijn formulier
maar door dat ik werk met 'PHP_SELF' voor een pagina indeling verlies ik de waarde van mijn variable.
de code bevindt zich hierbij.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
$search = $_POST["SEARCH_CHOICE_1"];
require("mysql_connect.inc.php"); // maak verbinding met de database
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
mysql_select_db("website") or die(mysql_error());
error_reporting(E_ALL);
$res1 = mysql_query("SELECT COUNT(username) FROM profiel") or die("res1: ".mysql_error()); // vraag het AANTAL items op
$items_totaal = mysql_result($res1, 0); // het totaal aantal items
mysql_free_result($res1); // geef het resultaat vrij
$items_per_pagina = 1; // vrij te kiezen
$aantal_paginas = ceil($items_totaal / $items_per_pagina); // het aantal items per pagina
// de huidige pagina opvragen
$huidige_pagina = 0; // default
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}
if ($search == 'SEARCH_ALL') {
// items van de huidige pagina ophalen
$offset = $huidige_pagina * $items_per_pagina;
$res2 = mysql_query("SELECT * FROM profiel ORDER BY username DESC LIMIT ".$offset.","
.$items_per_pagina) or die("res2:". mysql_error());
//doe hier iets met de gegevens in $res2
while($record = mysql_fetch_assoc($res2)){
echo "<table border=0 width=60% summary=>";
echo "<tr><td width=35%>";
echo $username = $record["username"];
echo "</td><td>";
$afbeelding = $record["afbeelding"];
echo "<center><br><img src='users/tmbk/".$afbeelding."' border=2 ><br><br></center>";
echo "</td></tr></table>" ;
}
// resultaten vrijgeven
mysql_free_result($res2);
}
// navigatie
for($i = 0; $i < $aantal_paginas; $i++) {
if($huidige_pagina == $i) {
// huidige pagina is niet klikbaar
echo "<b>".($i+1)."</b>";
} else {
// een andere pagina dan de huidige is wel klikbaar
echo "<a href=\"".$_SERVER['PHP_SELF']."?p=".$i."\">".($i+1)."</a>";
}
// deel-streepje tussen alle items
if($i < $aantal_paginas - 1) {
echo " - ";
}
}
?>
$search = $_POST["SEARCH_CHOICE_1"];
require("mysql_connect.inc.php"); // maak verbinding met de database
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
mysql_select_db("website") or die(mysql_error());
error_reporting(E_ALL);
$res1 = mysql_query("SELECT COUNT(username) FROM profiel") or die("res1: ".mysql_error()); // vraag het AANTAL items op
$items_totaal = mysql_result($res1, 0); // het totaal aantal items
mysql_free_result($res1); // geef het resultaat vrij
$items_per_pagina = 1; // vrij te kiezen
$aantal_paginas = ceil($items_totaal / $items_per_pagina); // het aantal items per pagina
// de huidige pagina opvragen
$huidige_pagina = 0; // default
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas) {
$huidige_pagina = $_GET['p'];
}
if ($search == 'SEARCH_ALL') {
// items van de huidige pagina ophalen
$offset = $huidige_pagina * $items_per_pagina;
$res2 = mysql_query("SELECT * FROM profiel ORDER BY username DESC LIMIT ".$offset.","
.$items_per_pagina) or die("res2:". mysql_error());
//doe hier iets met de gegevens in $res2
while($record = mysql_fetch_assoc($res2)){
echo "<table border=0 width=60% summary=>";
echo "<tr><td width=35%>";
echo $username = $record["username"];
echo "</td><td>";
$afbeelding = $record["afbeelding"];
echo "<center><br><img src='users/tmbk/".$afbeelding."' border=2 ><br><br></center>";
echo "</td></tr></table>" ;
}
// resultaten vrijgeven
mysql_free_result($res2);
}
// navigatie
for($i = 0; $i < $aantal_paginas; $i++) {
if($huidige_pagina == $i) {
// huidige pagina is niet klikbaar
echo "<b>".($i+1)."</b>";
} else {
// een andere pagina dan de huidige is wel klikbaar
echo "<a href=\"".$_SERVER['PHP_SELF']."?p=".$i."\">".($i+1)."</a>";
}
// deel-streepje tussen alle items
if($i < $aantal_paginas - 1) {
echo " - ";
}
}
?>
De eerste pagina geeft hij correct weer, maar als ik doorga na de tweede pagina krijg ik volgende foutmelding
Notice: Undefined index: SEARCH_CHOICE_1 in C:\Users\scalle\Desktop\website editors en hulp\USBWebserver v8_nl\root\website\look.php on line 3
Ik geraak er niet uit hoe ik dit moet oplossen.
Heeft er iemand een idee hoe dit kan opgelost worden.
Hopend op een oplossing wil ik jullie reeds bedanken.
Ik heb jou deel php code vooraan in mijn code geplaatst maar dan krijg ik de volgende foutmelding
Parse error: syntax error, unexpected '{
Kom, niet zo kinderachtig. Voeg even zelf de ontbrekende ")" toe. Gewoon even tellen, er moeten evenveel "(" als ")" zijn.
maar bedankt voor het antwoord
zodra je "doorklikt" naar een volgende pagina, ontvangt je verwerk-pagina een nieuwe POST array waarin de SEARCH_CHOICE_1 niet opgenomen is. Die moet je handmatig toevoegen aan de volgende pagina link OF je zet een cookie om die waarde door te geven.
Ik ben tot de oplossing gekomen om de variable bij elke keer dat ik naar een andere pagina navigeer hem terug met de url te verzenden.
de regel
is nu geworden
Code (php)
1
2
3
2
3
<?php
echo "<a href=\"".$_SERVER['PHP_SELF']."?p=".$i."&SEARCH_CHOICE_1=".$search."\">".($i+1)."</a>";
?>
echo "<a href=\"".$_SERVER['PHP_SELF']."?p=".$i."&SEARCH_CHOICE_1=".$search."\">".($i+1)."</a>";
?>
en bovenaan zet ik deze regel:
bedankt voor mij goede raad allemaal te geven
Gewijzigd op 23/10/2012 22:28:34 door pascal vanholder