将2个搜索表单合并为1个输入,以及复选框

时间:2015-06-05 10:18:04

标签: javascript php forms

在我的网站上,我有一个主搜索(由Google提供支持,放置在整个网站上),我现在已经创建了第二个搜索(在其自己的页面上,根据用户输入文本在我的数据库中搜索图像),这是一个将搜索完全分开到谷歌搜索。

我想做什么 - 我希望两个搜索表单共享一个文本输入字段,但允许用户通过单选按钮选择要使用的搜索(Google或仅图像)。

所以我们有:  [搜索输入字段] [go](o)仅使用Google(o)图片搜索

我不是编码员,但可以破解足够的事情,只需要我一两天才能弄明白并开始工作。 我需要什么,并将节省我很多时间,因为我很难知道如何继续这个或甚至可能!如果有人能告诉我A)如果可能的话,和B)如果有的话可以指点几点。例如,我猜它可能需要一些JavaScript来实现它? 任何指针都会受到赞赏,然后我可以看到我能做些什么。

一切顺利, 克里斯

     // My Stand-alone Image Search Page ////////////////////////////////

 <form  method="post" action="imagesearch?go"  id="search-form">  
       <input  type="text" name="name">  
       <input  type="submit" name="submit" value="Search">  
    </form>

// code for above form //

 if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  if(preg_match("/^[  a-zA-Z]+/", $_POST['name'])){
  $name=$_POST['name'];

  $sql="SELECT  ID FROM ImageTable WHERE Name LIKE '%" . $name .  "%'  Order by Date Desc LIMIT 50";
  //-run  the query against the mysql query function
  $result=mysql_query($sql);

  // Create  while loop and loop through result set//

   $content .= ' <p><div id="wrapper">';

  while($row=mysql_fetch_array($result)){
       $id=$row['ID'];
    $img = new Image($id);

  // Format results//

  $content .= '<div id="imgrt"><a href="'.$img->URL.'"><img src="/img/M/'.$img->ID.'.jpg" class="searchimg"><br>'.$img->Name.'</a>';



  $content .= '</div>';

  }
  $content .= '';$content .= '</div>';
  }
  else{
 $content .= ' <p>Please enter a search query</p>';
  }
  }
  }

// End of Stand-alone image search page /////////////////////////

---------------------------------------------------------------------------

// My sites main Google powered Search

<form action="http://www.example.com/gsresults" id="cse-search-box" class="searchmain">

      <input type="hidden" name="cx" value="partner-pub-XXXXXXXXXXXXXXX" />
        <input type="hidden" name="cof" value="FORID:XX" />
        <input type="hidden" name="ie" value="UTF-8" />
        <input type="text" name="q" class="mainsearch">
        <input type="submit" name="sa" value="Go" class="mainsearchbutton"/>

    </form>

    <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang="></script>

1 个答案:

答案 0 :(得分:1)

好的,我们走了。如果你把它放在一个空的html文件中,你可以看到它在行动(尝试制作一个jsfiddle,但由于某种原因没有工作)。这样做是为了设置一个活跃的&#34;选中的组合选项上的id,当您单击提交按钮时,它会使用该ID获取组合选项的值,然后转到该值的页面。因此,如果你点击谷歌然后按钮你去google.html,同样适用于image,image.html。如果你想要一些更具体的细节你可以问,但这就是那里的主要逻辑。

<script>
    function replaceActive(obj) {
        var activeElm = document.getElementById("active");
        activeElm.id = activeElm.id.replace("active", ""); 
        obj.id = "active";
    }

    function formFunction(obj) {
        obj.action = document.getElementById("active").value + ".html";
    }
</script>

<form action="#" onsubmit="return formFunction(this);" method="post">
    <input type="text" />
    <select>
        <option value="google" id="active" onclick="replaceActive(this);">Google</option>
        <option value="image" onclick="replaceActive(this);">Images</option>
    </select>
    <input type="submit" />
</form>

基本上你可以改变那个&#34; formFunction()&#34;函数的代码和使用&#34; document.getElementById(&#34; active&#34;)。value&#34;做你想做的事。