是否可以为关联数组创建搜索表单?

时间:2015-03-20 09:16:01

标签: php arrays search-form

所以,这里有几个数组;

$ljubimci_arr[]=array("naziv"=>"Stef","vrsta" => "Pas", "spol" => "M", "pasmina" => "vucjak","cijepljen" => "DA","chip" =>"HRV20140115001" );
$ljubimci_arr[]=array("naziv"=>"Mia","vrsta" => "Macka", "spol" => "Z", "pasmina" => "tazmanijska zvijer","cijepljen" => "DA", "chip" =>"HRV20140117002" );
$ljubimci_arr[]=array("naziv"=>"Jura","vrsta" => "Macka", "spol" => "M", "pasmina" => "ruska plava","cijepljen" => "NE", "chip" =>"HRV20140216003" );
$ljubimci_arr[]=array("naziv"=>"Thepas","vrsta" => "Pas", "spol" => "M", "pasmina" => "koker","cijepljen" => "DA", "chip" =>"HRV20140823004" );
$ljubimci_arr[]=array("naziv"=>"Rubick","vrsta" => "Macka", "spol" => "Z", "pasmina" => "skotski fold","cijepljen" => "DA", "chip" =>"HRV20140920005" );
$ljubimci_arr[]=array("naziv"=>"Svinjica","vrsta" => "Pas", "spol" => "Z", "pasmina" => "samojed","cijepljen" => "NE", "chip" =>"HRV20141007006" );
$ljubimci_arr[]=array("naziv"=>"Aron","vrsta" => "Pas", "spol" => "M", "pasmina" => "mastif","cijepljen" => "DA", "chip" =>"HRV20150102007" );

是否可以使用下面的表格为上面的数组创建搜索表单。我只想根据我在搜索表单中输入的值获取简单的url值。让我们说我想搜索关键词" naziv"如果我写了#34; Rubick"(naziv =>" Rubick")那么我将在url中获得价值Rubick。

<form method="GET">
  Search Google:
  <input type="search" name="ljubimci_arr">
  <input type="submit"/>
</form>

我尝试使用这个例子作为工作材料,但没有任何运气。 Using Form Field to Search Php Associative Array     

if(isset($_GET['year']))
{
    if(array_key_exists($_GET['year'], $ages))
    {
         echo $ages[$_GET['year']];
    }
    else
    {
        echo 'Cannot find data';
    }
}    
?>

<form method="GET">
    <input type="text" name="year" value="1984" />
    <input type="submit" />
</form> 

谢谢!

1 个答案:

答案 0 :(得分:1)

此方法遍历数组中的每个项目,并将表单中的输入与键naziv的值进行比较。如果未找到任何内容,则会输出错误消息。

<form method="POST" action="">
    Search Google:
    <input type="search" name="ljubimci_arr">
    <input type="submit"/>
</form>

<?php

$ljubimci_arr[]=array("naziv"=>"Stef","vrsta" => "Pas", "spol" => "M", "pasmina" => "vucjak","cijepljen" => "DA","chip" =>"HRV20140115001" );
$ljubimci_arr[]=array("naziv"=>"Mia","vrsta" => "Macka", "spol" => "Z", "pasmina" => "tazmanijska zvijer","cijepljen" => "DA", "chip" =>"HRV20140117002" );
$ljubimci_arr[]=array("naziv"=>"Jura","vrsta" => "Macka", "spol" => "M", "pasmina" => "ruska plava","cijepljen" => "NE", "chip" =>"HRV20140216003" );
$ljubimci_arr[]=array("naziv"=>"Thepas","vrsta" => "Pas", "spol" => "M", "pasmina" => "koker","cijepljen" => "DA", "chip" =>"HRV20140823004" );
$ljubimci_arr[]=array("naziv"=>"Rubick","vrsta" => "Macka", "spol" => "Z", "pasmina" => "skotski fold","cijepljen" => "DA", "chip" =>"HRV20140920005" );
$ljubimci_arr[]=array("naziv"=>"Svinjica","vrsta" => "Pas", "spol" => "Z", "pasmina" => "samojed","cijepljen" => "NE", "chip" =>"HRV20141007006" );
$ljubimci_arr[]=array("naziv"=>"Aron","vrsta" => "Pas", "spol" => "M", "pasmina" => "mastif","cijepljen" => "DA", "chip" =>"HRV20150102007" );

if(isset($_POST['ljubimci_arr']))
{
    $found = 0;
    foreach($ljubimci_arr as $item) {
        if($item['naziv'] == $_POST['ljubimci_arr'])
        {
            print_r($item);
            $found = 1;
        }
    }
    if(!$found)
        echo "Cannot find data.<br>";
}

?>