Button doorlinken naar andere pagina werkt niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick cos

patrick cos

07/06/2013 12:26:26
Quote Anchor link
Heeft iemand enig idee hoe ik zoek button(voorpagina), naar een andere pagina(zoekennn.php) kan linken?
Het script wil de ingevoerde tekst niet doorsturen, naar zoekennn.php

voorpagina (2buttons maar zijn even voor test):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    <form name="zoekquery" id="zoekquery" action="zoekennn" method="get" target="bottom">          
        <td><input name="zoekquery" class="textfield" type="text" id="zoek" value="$zoek" style="width:125px;" /></td>
        <td><input type="image" style="float :inherit ;" img src="img/button-search-small.png" title="Zoek" value="Zoekennn" /></td>
        <td><input type="hidden" name="page" value="$zoek" /></td><td><input type="submit" title="Zoek" value="Zoek" /> </td>    
    </form>    




zoekennn.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
        $zoeken .= "
    <h3>Producten zoeken</h3>
  
        <form name=\"zoekquery\" id=\"zoekquery\" action=\"zoekennn\" method=\"post\">
        <table width=\"200\" border=\"0\">
          <tr>
            <td><input name=\"zoek\" class=\"textfield\" type=\"text\" id=\"zoek\" value=\"$zoek\" style=\"width:150px; height:27px;\" /></td>
            <td><input type=\"image\" style=\"float :inherit ;\" img src=\"img/button-search.png\" title=\"Zoek\" value=\"Zoek\" /></td>
          </tr>
          
        </table>
        </form>
        ";
 
PHP hulp

PHP hulp

23/12/2024 03:03:07
 
Chris PHP

Chris PHP

07/06/2013 12:29:55
Quote Anchor link
Ja, je action correct invullen

<form name="zoekquery" id="zoekquery" action="pad/naar/zoekenn.php" method="post" target="bottom">

En gebruik ook gelijk POST als method

Toevoeging op 07/06/2013 12:32:09:

Maar waarom heb je ook een zoek formulier in zoekennn staan? Dat gaat zo natuurlijk nooit werken
 
Patrick cos

patrick cos

07/06/2013 12:37:03
Quote Anchor link
Heb het aangepast, maar het werkt nog steeds niet.
Er staat ook standaard '$zoek' in het invoerveld, maar die waarde moet die doorsturen naar zoekennn.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    <form name="zoekquery" id="zoekquery" action="zoekennn.php" method="post" target="bottom">          
        <td><input name="zoekquery" class="textfield" type="text" id="zoek" value="$zoek" style="width:125px;" /></td>
        <td><input type="image" style="float :inherit ;" img src="img/button-search-small.png" title="Zoek" value="Zoekennn" /></td>
        <td><input type="hidden" name="page" value="$zoek" /></td><td><input type="submit" title="Zoek" value="Zoek" /> </td>    
    </form>    
 
Chris PHP

Chris PHP

07/06/2013 12:41:52
Quote Anchor link
Ja maar hij stuurt alles wel netjes door, alleen jij vangt het niet op in zoekennn.php.

Dat doe je door de $_POST['name'] te gebruiken, die bevatten de gegevens van je zoek formulier.

Dus in jou geval is dat $_POST['zoekquery'] en $_POST['page']

Je middelste input (de afbeelding) komt nooit aan, want hier heb je geen name="" atribuut in zitten.
Gewijzigd op 07/06/2013 12:42:20 door Chris PHP
 
Patrick cos

patrick cos

07/06/2013 12:54:16
Quote Anchor link
Oke bedankt,

Maar ik moet dus $_POST['zoekquery'] en $_POST['page'] in zoekennn.php zien te plaatsen?
 
Chris PHP

Chris PHP

07/06/2013 13:00:37
Quote Anchor link
Ja en dan natuurlijk ook gebruiken!

Je kunt ze op het scherm afdrukken door er echo voor te zetten, en kijken of ze de waardes bevatten die je verwacht. Daarna zul je ze moeten gebruiken in een query om je gegevens uit de database te halen.

Tevens in hidden veld heb je bij value $zoek staan, dit zal natuurlijk nooit werken. Daar komt letterlijk $zoek te staan en niet wat je in die variabel in php hebt gezet.

Als je php variabelen in HTML wil gebruiken doe je dat zo,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
value="<?php echo $zoek; ?>"
Dus je opent php dan gebruik je echo $variabel; om de inhoud van je $variabel op het scherm af te drukken, en vervolgens sluit je php weer af.
Gewijzigd op 07/06/2013 13:02:00 door Chris PHP
 
Patrick cos

patrick cos

07/06/2013 13:26:20
Quote Anchor link
Bedankt! ik heb het werkend gekregen.
 
Chris PHP

Chris PHP

07/06/2013 13:29:55
Quote Anchor link
Geen probleem,

Als je een query hebt zorg wel dat je alles juist escaped met mysql_real_escape_string(), zodat je niet gevoelig bent voor SQL Injection!

Dus zo in je query zetten mysql_real_escape_string($_POST['zoekquery'])
 
Patrick cos

patrick cos

07/06/2013 13:38:00
Quote Anchor link
Als laatste hoe kan ik bijvoorbeeld een minimaal en maxmaal aantal karakters dat ingevuld wordt beperken?
Want als iemand 1 karakter invult komt er een uitput van 200+ records...
dat lijkt mij niet handig voor de prestaties?
 
Chris PHP

Chris PHP

07/06/2013 13:46:51
Quote Anchor link
Als je dat wil doen voordat het zoek formulier verzonden wordt, is volgens mij het makkelijkst om dit met JavaScript en/of JQuery. Als je het naderhand wil oplossen kun je dat wel opvangen met php, echter is dan al wel het formulier verzonden en zul je ze terug moeten sturen naar de zoek pagina.
 
Patrick cos

patrick cos

07/06/2013 13:47:00
Quote Anchor link
moet je dat ook nog bij je post zetten? (mysql_real_escape_string)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$zoek = $_POST['zoek'];    

Dat zou dus het volgende moeten worden?
$zoek = mysql_real_escape_string($_POST['zoek']);
    


ik heb het wel in de sql query geplaatst:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
         WHERE
                ((LOWER(od_naam) LIKE '%" . mysql_real_escape_string ($zoek) . "%')
 
Chris PHP

Chris PHP

10/06/2013 10:03:00
Quote Anchor link
Zo in de query plaatsen is het beste, en ik zou de post niet eerst in een variabel zetten maar ook rechtstreeks in de query.

Zo dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
  WHERE
                ((LOWER(od_naam) LIKE '%" . mysql_real_escape_string ($_POST['zoek']) . "%')


Variabelen nemen recources in beslag en kan je site wanneer het groter wordt dus vertragen, als je het kan zonder het eerst in een variabel te zetten is het het beste om daarvoor te gaan.
 
Patrick cos

patrick cos

10/06/2013 10:24:17
Quote Anchor link
Oke bedankt, weer wat geleerd:P

Als laatst wou ik de laatste 100 zoekterm opslaan in de database, maar hoe zorg ik er voor dat de rij 101 automatisch verwijderd wordt uit de database?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.