Jeżeli dane są z inputa to wywołanie odpowiedniej metody powinno pochodzić z buttona submit a nie z linka html, możesz zmienić metodę z POST na GET, jeżeli ta sama strona ma np obslugiwac linki z "popularnych wyszukan" w postaci
http://strona.ta?searchphrase=motor<form method="POST" action="<?php echo basename(__FILE__);?"> <input type="text" name="searchphrase" value=""/> <input type="submit" value="Szukaj"/>
<?php
function validate_input($str) {
// inne operacja sprawdzające poprawność wpisu na przykład
$pattern = '/^[A-Za-zĄĆĘŁÓŃŻŹŚąćęłóśżź]{3,50}$/'; //słowo polskie 3-50 literowe
//$pattern ='/^[0-9A-Z]+(.?[0-9A-Z+_-])*@([0-9A-Z-_]{1,63}.){1,126}[0-9A-Z]{2,63}$/i'; // adres e-mail
return $str;
} else {
return false;
} //if
}// function validate_input
// sprawdzamy czy dokonano poprawnego zapytania
$mysearch = '';
if (isset($_POST['searchphrase']) && $_POST['searchphrase']!='' && $mysearch=validate_input
($_POST['searchphrase'])) { // niech szuka, do_search to odwołanie do Twojej funkcji szukającej
do_search($mysearch);
} else {
// ... nic , bo nie wiemy czy zapytanie puste, błędne, czy brak zapytania, trzaby
ifa rozbić i dopisać obsługe błędów
} //if
?>
czemu tak ?
- dane wejściowe i tak MUSISZ walidować po stronie serwera, inaczej narazisz się na ataki SQL Injection
- blokada JS w przeglądarce nie może powodować zaniku funkcjonalności strony
- formularz jest powszechnie przyjęta metodą obsługi wyszukiwania, jest poprawny składniowo
- nie da się "uruchomić funkcji php z linka html" tak jak w JS, trzeba wysłac zapytanie do skryptu (w tym wypadku do tej samej strony (basename(__FILE__)) i przekazac dane metodą POST/GET
- na takim poziomie zaawansowania odradzam stosowanie JS do celów innych niż ozdobniki, sprawdzenie niepustości pola przed wysłaniem, czy jakichś gadżetów typu sprawdzenie wielkości ekranu usera
- formularz łatwo dostosować do opcji zaawansowanych (dokładna fraza, dowlone słowo, wszystkie słowa) i odpowiednio dobrać pattern a w końcu zapytanie SQL, że nie wspomnę już o udostępnieniu userom sortowania wyników (generalnie formularz = wiele danych i opcji za jednym klikiem)