PHP表单索引未定义和变量未定义

时间:2017-10-11 16:36:01

标签: javascript php html ebay-api

一直在做一个简单的搜索,但我遇到了一个问题。我在_POST请求中收到索引未定义和变量未定义的错误! 我无法找到错误,任何人都可以帮助我吗?顺便说一下,该项目是在3个不同的文件上完成的。

HTML:

<form action="ajax/queries.php" method="POST" class="searchbox sbx-google">
  <div role="search" class="sbx-google__wrapper">
    <input type="text" name="search" placeholder="Įveskite paieškos terminus" autocomplete="off" required="required" class="sbx-google__input">
    <button type="submit" title="Submit your search query." class="sbx-google__submit">
      <svg role="img" aria-label="Search">
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-search-13"></use>
      </svg>
    </button>
    <button type="reset" title="Clear the search query." class="sbx-google__reset">
      <svg role="img" aria-label="Reset">
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-clear-3"></use>
      </svg>
    </button>
  </div>
</form>
<script type="text/javascript">
  document.querySelector('.searchbox [type="reset"]').addEventListener('click', function() {  this.parentNode.querySelector('input').focus();});
</script>

PHP编辑之前,我得到索引未定义错误,虽然在queries.php页面上,我可以看到search的内容,虽然它仍然显示为错误,并且不会将其提供给处理脚本:

global $query;
//
$query = htmlspecialchars($_POST['search']);  

PHP编辑后,我得到变量未定义错误:

//Query
if (!isset($_POST)) {
  if (!isset($_POST["search"])){
    $query = htmlspecialchars($_POST['search']);
  }
} 

编辑:

添加更多代码: https://pastebin.com/XcKPvWvb queries.php https://pastebin.com/v7cL6Jw5 paieska.php(查询没有提供给它) pastebin dot com slash jh5wLPLR index.php(html)

3 个答案:

答案 0 :(得分:0)

PHP:你一直在以错误的顺序做你的if语句。请尝试这样的if语句:

// Check if the post variable is set:
if (isset($_POST)) {
// Check if the key search post variable is set:
  if (isset($_POST["search"])){
    // Define the query:
    $query = htmlspecialchars($_POST["search"]);
  }
} 

HTML:我看不到已经分配了输入的名称,请确保您这样做,以便使用键作为输入的名称发布输入。

如果我能再帮助你,请告诉我。

答案 1 :(得分:0)

删除!中的!isset()

答案 2 :(得分:0)

在您的表单上,您为表单,输入字段以及造成混淆的按钮提供了name="search"

更新了Html

  

我将方法从GET更改为POST,还更改了表单名称和搜索按钮

<form action="ajax/queries.php" method="POST" name="search_form" class="searchbox sbx-google">
  <div role="search" class="sbx-google__wrapper">
    <input type="text" name="search" placeholder="Įveskite paieškos terminus" autocomplete="off" required="required" class="sbx-google__input">
    <button type="submit" title="Submit your search query." name="search_button"  class="sbx-google__submit">
      <svg role="img" aria-label="Search">
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-search-13"></use>
      </svg>
    </button>

在您使用的每个if(isset..条件下,只是一个小错误! (不是)运营商

更新了PHP代码

if (isset($_POST['search_button'])) {
  if (isset($_POST["search"])){
    $query = htmlspecialchars($_POST['search']);
  }
}