0

我有一个简单的 html 表单,如下所示

  <form action="search.php" method="get">
    <p>Company Name:
       <input type="text" name="name" />
    </p>    
    <p>
      <input type="submit" value = "Search"/>
    </p>
  </form>

很简单,但是问题是我被重定向到search.php(与此表单页面位于同一目录中)。我希望能够在同一页面(表单下方)上显示搜索结果,而无需重定向到search.php. 你有什么建议?

4

4 回答 4

4

采用jQuery

然后您可以轻松调用ajax(来自 javascript 的客户端-服务器请求)(参见文档

例如,如果您有一个 id 为search-form的搜索表单和一个 id 为search-results的容器来显示搜索结果,那么您可以:

<script type="text/javascript">
function submit_search() {

    var request_data = $('#search-form').serailize();
    $.post('search.php', request_data, function(data, textStatus, jqXHR){
        $('#search-results').html(data);
        }, 'html');
    }
</script>

<form id="search-form" action="search.php" method="post" onsubmit="submit_searh();return false;">
<input type="text" name="q">
<input type="submit" value="Search!">
</form>

<div id="search-results"></div>
于 2012-06-24T12:42:21.537 回答
4

您可以将表单设置为在同一页面上重定向

<form action="yourPage.php" method="post">
<p>Company Name:
   <input type="text" name="name" />
</p>    
<p>
  <input type="submit" value = "Search"/>
</p>

然后检查这个 php 页面是否已经填写了表格

    if(isset($_POST['a_field_of_your form']){
//treat the values of the form
}

然后在页面中显示表单后的结果!

该方法暗示页面将被重新加载,如果您不希望它发生,则必须使用 Ajax 提交表单并从 Ajax 请求中获取搜索结果!

于 2012-06-24T12:44:33.450 回答
1

您可以使用此库通过 ajax 提交表单

阿贾克斯提交

例子:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
    <script src="http://malsup.github.com/jquery.form.js"></script> 

    <script> 
        // wait for the DOM to be loaded 
        $(document).ready(function() { 
            // bind 'myForm' (is an id of form) and provide a simple callback function 
            $('#myForm').ajaxForm(function(response) { 
                  //handle search results
                alert("Thank you for your search!"); 
            }); 
        }); 
    </script> 
于 2012-06-24T12:42:59.933 回答
0

您可以使用 AJAX 完成此操作。使用 javascript(或您用于 javascript 的任何库)并使用表单中的值向 search.php 发送 AJAX 请求。你需要自己收集这些。您还需要让 search.php 返回您可以插入页面的内容,而不是整个页面本身。

于 2012-06-24T12:43:46.173 回答