[php] Zoekform

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een klein probleempje, het zoekform werkt prima, maar ik kan niet op 'enter' drukken en dan laten zoeken... De pagina herlaadt zichzelf gewoon, maar als ik op 'Zoeken' klik met de muis werkt hij degelijk wel... Hoe fix ik hem om het te laten werken met het drukken van 'enter'?
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
63
64
65
66
<?

$server = "localhost"; 
$username = "gebruikersnaam"; 
$password = "wachtwoord"; 
$database = "database"; 

mysql_connect($server, $username, $password); 
mysql_select_db($database); 

if(!isSet($_POST['zoeken'])){

?>

<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table width="800" cellpadding="2" cellspacing="0">
<tr>
<td width="50%" style="font-size: 12px"><input type="text" name="search"></td>
<td width="50%" style="font-size: 12px"><input type="submit" name="zoeken" value="Zoeken!"></td>
</tr>
</table>
</form>

<?

} else {

$search = $_POST['search'];

$query = "SELECT * FROM games WHERE naam LIKE '%$search%'";
$select = mysql_query($query);
$result = mysql_num_rows($select);

     if(!$result){

     echo "Er zijn geen resultaten gevonden met het zoekterm $search!";

     } else {

          if($result == 1){

          echo "Er is $result resultaat gevonden!<br><br>";

          while($obj = mysql_fetch_object($select)){

          echo "$obj->naam, $obj->cd, $obj->serienummer, $obj->datum!";

          }

          } else {

          echo "Er zijn $result reslutaten gevonden!<br><br>";

          while($obj = mysql_fetch_object($select)){

          echo "$obj->naam, $obj->cd, $obj->serienummer, $obj->datum!";

          }

          }

     }

}

?>

[ Voor 20% gewijzigd door Verwijderd op 19-03-2004 11:43 ]


Acties:
  • 0 Henk 'm!

Verwijderd

De var $_POST['zoeken'] wordt niet mee gestuurd... laat checken op het aanwezig zijn van $_POST["search"]

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
kun je misschien iets duidelijker zijn? :P

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 09:55

Bosmonster

*zucht*

Verwijderd schreef op 19 maart 2004 @ 11:45:
De var $_POST['zoeken'] wordt niet mee gestuurd... laat checken op het aanwezig zijn van $_POST["search"]
Zoeken is de naam van de submit-knop. Een methode van submit-checken die ikzelf overigens verre van mooi vind. Je kunt namelijk net zo eenvoudig kijken of de pagina via GET/POST bereikt is.

Maar goed.. Wat jij bedoelt met de enter-toets heeft niet met PHP te maken, maar is gewoon een HTML-issue die toevallig ook net in W&G voorbij is gekomen. Het is namelijk standaard browser-functionaliteit en als dat bij jou niet werkt zou ik eens gaan kijken naar de rest van je pagina of je browserinstallatie ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oke, ik snap je wel, maar wat het grappige is... me enter knop werkt bij alle pagina's (ook mijn alle andere geschreven scriptjes) BEHALVE bij die werkt niet... ik snap er niks van, ik heb het hetzelfde gedaan (dacht ik...)

[ Voor 3% gewijzigd door Verwijderd op 19-03-2004 11:50 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 19 maart 2004 @ 11:45:
De var $_POST['zoeken'] wordt niet mee gestuurd... laat checken op het aanwezig zijn van $_POST["search"]
@TS: Hoe duidelijk moet men zijn alvorens u begrijpt wat er mis gaat?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik snap sooterd niet, maar bosmonster wel... maar als jij sooterd begrijpt (ik dus niet) kun je dan misschien een klein voorbeeldje geven (bv. een fixje van het script)?..

dus bv: hoe laat ik het meesturen die $_POST['zoeken']... dit is toch het submit-knop?! enne, het checken van $_POST['search'].. oke, maar hoe?

[ Voor 31% gewijzigd door Verwijderd op 19-03-2004 11:56 ]


Acties:
  • 0 Henk 'm!

  • AJM
  • Registratie: Oktober 2002
  • Laatst online: 21-09 21:17

AJM

ik heb zelf ook een zoekformulier gemaakt en had hetzelfde probleem.
Probeer het eens zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<? 

} else { 

$search = $_POST['search']; 

if ($search){

  $query = "SELECT * FROM games WHERE naam LIKE '%$search%'"; 
  $select = mysql_query($query); 
  $result = mysql_num_rows($select); 

[...]

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oke bedankt! je begrijpt mij tenministe :P.. even testen bij mij..

edit: het werkt niet die if($search){}...

[ Voor 26% gewijzigd door Verwijderd op 19-03-2004 12:01 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 09:55

Bosmonster

*zucht*

Volgens mij stuurt ie trouwens de hele waarde van de submit-knop niet mee als je enter drukt. Daarom krijg je alleen een page-refresh :)

Maak je check op $_SERVER['REQUEST_METHOD'] == 'POST' ipv isset ($_POST['zoeken'])

[edit]
Uiteindelijk snap ik dus wat Sooterd bedoelt.. die had hem dus gelijk al :)

[ Voor 17% gewijzigd door Bosmonster op 19-03-2004 12:01 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dus moet ik die veranderen?
PHP:
1
if(!isSet($_POST['zoeken'])){}

naar?:
PHP:
1
if(!$_SERVER['REQUEST_METHOD'] == 'POST'){}

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 09:55

Bosmonster

*zucht*

probeer het eens zou ik zeggen :)

Acties:
  • 0 Henk 'm!

  • AJM
  • Registratie: Oktober 2002
  • Laatst online: 21-09 21:17

AJM

probeer het anders zo:

code:
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
63
<? 

$server = "localhost"; 
$username = "gebruikersnaam"; 
$password = "wachtwoord"; 
$database = "database"; 

mysql_connect($server, $username, $password); 
mysql_select_db($database); 

?> 

<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>"> 
<table width="800" cellpadding="2" cellspacing="0"> 
<tr> 
<td width="50%" style="font-size: 12px"><input type="text" name="search"></td> 
<td width="50%" style="font-size: 12px"><input type="submit" name="zoeken" value="Zoeken!"></td> 
</tr> 
</table> 
</form> 

<?php
if ($_POST['zoeken']) {

$search = $_POST['search']; 

$query = "SELECT * FROM games WHERE naam LIKE '%$search%'"; 
$select = mysql_query($query); 
$result = mysql_num_rows($select); 

     if(!$result){ 

     echo "Er zijn geen resultaten gevonden met het zoekterm $search!"; 

     } else { 

          if($result == 1){ 

          echo "Er is $result resultaat gevonden!<br><br>"; 

          while($obj = mysql_fetch_object($select)){ 

          echo "$obj->naam, $obj->cd, $obj->serienummer, $obj->datum!"; 

          } 

          } else { 

          echo "Er zijn $result reslutaten gevonden!<br><br>"; 

          while($obj = mysql_fetch_object($select)){ 

          echo "$obj->naam, $obj->cd, $obj->serienummer, $obj->datum!"; 

          } 

          } 

     } 

} 

?>

Acties:
  • 0 Henk 'm!

Verwijderd

Ik lijk wel gek:

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
<?

$server = "localhost"; 
$username = "gebruikersnaam"; 
$password = "wachtwoord"; 
$database = "database"; 

mysql_connect($server, $username, $password); 
mysql_select_db($database); 

// verwerking
// -------------------------------------------------------------------
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $search = $_POST['search'];
    $query = "SELECT * FROM games WHERE naam LIKE '%" . $search . "%'";
    $select = mysql_query($query);
    $result = mysql_num_rows($select);

    if($result == 0)
      echo "Er zijn geen resultaten gevonden met de zoekterm <b>" . $search . "</b>!";
    else
    {

        if($result == 1)
          echo 'Er is 1 resultaat gevonden!<br><br>';
        else
          echo 'Er zijn ' . $result . ' resultaten gevonden!<br><br>';

        while($obj = mysql_fetch_object($select))
            echo $obj->naam . ', ' . $obj->cd . ', ' . $obj->serienummer . ', ' . $obj->datum . '!';

    }

} else
// formulier
// -------------------------------------------------------------------
{

?>

<form method="POST">
<table width="800" cellpadding="2" cellspacing="0">
<tr>
<td width="50%" style="font-size: 12px"><input type="text" name="search"></td>
<td width="50%" style="font-size: 12px"><input type="submit" name="zoeken" value="Zoeken!"></td>
</tr>
</table>
</form>

<?

}

?>

[ Voor 63% gewijzigd door Verwijderd op 19-03-2004 12:14 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
wat bosmonster schreef, het werkt! hardstikke bedankt...

maar het moest zo:
PHP:
1
if(!($_SERVER['REQUEST_METHOD'] == 'POST')){

nu ff testen van _GoldStrike_...

edit: helaas _GoldStrike_.. het werkt niet.. maar toch bedankt!

ivy: het werkt zo idd wel, bij mij ongeveer zelfde:
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
63
64
65
66
<?

$server = "localhost"; 
$username = "gebruikersnaam"; 
$password = "wachtwoord"; 
$database = "database"; 

mysql_connect($server, $username, $password); 
mysql_select_db($database); 

if(!($_SERVER['REQUEST_METHOD'] == 'POST')){

?>

<form method="POST" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table width="800" cellpadding="2" cellspacing="0">
<tr>
<td width="50%" style="font-size: 12px"><input type="text" name="search"></td>
<td width="50%" style="font-size: 12px"><input type="submit" name="zoeken" value="Zoeken!"></td>
</tr>
</table>
</form>

<?

} else {

$search = $_POST['search'];

$query = "SELECT * FROM games WHERE naam LIKE '%$search%'";
$select = mysql_query($query);
$result = mysql_num_rows($select);

if(!$result){

echo "Er zijn geen resultaten gevonden met het zoekterm $search!";

} else {

if($result == 1){

echo "Er is $result resultaat gevonden!<br><br>";

while($obj = mysql_fetch_object($select)){

echo "$obj->naam, $obj->cd, $obj->serienummer, $obj->datum!";

}

} else {

echo "Er zijn $result reslutaten gevonden!<br><br>";

while($obj = mysql_fetch_object($select)){

echo "$obj->naam, $obj->cd, $obj->serienummer, $obj->datum!";

}

}

}

}

?>

[ Voor 128% gewijzigd door Verwijderd op 19-03-2004 12:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

hmmm... dus... doetie het nog niet of zo... "ik lijk wel gek" zegt niet zo heel veel over de status van je probleem...

mochtie het nog niet doen kan je misschien error_reporting(E_ALL) boven aan je pagina zetten

Acties:
  • 0 Henk 'm!

Verwijderd

if(!isset($_POST["search"])){

zou toch ook echt moeten werken... hoewel de methode van bosmonster wel netter en uniformer is...

[edit]

sorry voor dubbele post en verkeerde reactie in de post hierboven.... :)

[ Voor 28% gewijzigd door Verwijderd op 19-03-2004 12:18 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sooterd, het prob is opgelost dankzij bosmonster.. en waarschijnlijk mede jou want bosmonster begreep jou :P...
Pagina: 1