webForumDet fria alternativet

Problem med enkel sökfunktion

1 svar · 369 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Har följande kod i/på index.php:

<?php 
	
	$sokstrang = htmlspecialchars($_POST["search"]);
		
	if ($_POST["soktyp"] == "medlemmar") $sok = "users.php?search=$sokstrang"; 
	else if ($_POST["soktyp"] == "bilder") $sok = "bilder.php?search=$sokstrang&amp;kategori=0"; 
	else if ($_POST["soktyp"] == "forum") $sok = "forum.php?action=search&amp;keywords=$sokstrang"; 
?>

    	<form method="post" action="<?=$sok?>">
	<input type="radio" name="soktyp" value="bilder" checked="checked" />bilder
        <input type="radio" name="soktyp" value="forum" />forum 
        <input type="radio" name="soktyp" value="medlemmar" />medlemmar
        &nbsp;&nbsp;<input type="text" name="search" maxlength="18" />
	</form>

..men det verkar inte fungera riktigt som det ska.
Flera gånger så postas formuläret direkt till index.php, istället för till resp. sida som är angivet i "soktyp".

Alltså.. om man vill söka efter bilder, så ska sökresultat visas på sidan bilder.php o.s.v.

clovecMedlem sedan dec. 200574 inlägg
#2

Som det är nu så står action mot <?=$sök?> som är tom då den ej har fått något värde. Så prova med att ändra till nedanstående kodexempel och se om det fungerar. Nu är jag lite trött så koden kanske inte fungerar men bör nog ge dig en idé hur detta kan lösas

Testa ändra

<form method="post" action="<?=$sok?>">

till

<form method="post" action="index.php">

och ändra

<?php 
    
    $sokstrang = htmlspecialchars($_POST["search"]);
        
    if ($_POST["soktyp"] == "medlemmar") $sok = "users.php?search=$sokstrang"; 
    else if ($_POST["soktyp"] == "bilder") $sok = "bilder.php?search=$sokstrang&amp;kategori=0"; 
    else if ($_POST["soktyp"] == "forum") $sok = "forum.php?action=search&amp;keywords=$sokstrang"; 
?>

till

<?php 
    
    //Detta ifall du vill ha andra formulär på sidan
    if (isset($_POST['sök']))
{    
   $sokstrang = htmlspecialchars($_POST["search"]);
    if ($_POST["soktyp"] == "medlemmar") header("Location: users.php?search=" . $sokstrang); 
    else if ($_POST["soktyp"] == "bilder") header("Location: bilder.php?search=" . $sokstrang . "&amp;kategori=0"); 
    else if ($_POST["soktyp"] == "forum") header("Location: forum.php?action=search&amp;keywords=" . $sokstrang); 
}
?>

Hittade även ingen submit knapp, ändra ditt formulär så även detta finns med såhär:

<br /><input type="submit" name="sök" value="Sök" />
126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)