2017-07-27 58 views
1

這是一個SSCCE,展示我的問題。在頁面頂部,打印$_GET。首次加載頁面時,打印空數組Array()是可以理解的。

formaction屬性有一個空值,這意味着頁面被提交給自己。 method的值是GET。所以表單由GET提交。

所以當表單通過GET提交給頁面時,現在在頁面頂部打印的$_GET數組不能爲空。哦,但它是!這就是問題所在。

當表單提交,

  1. $_GET陣列在頁面的頂部印刷是空的。 Array()

  2. A ?被追加到URL。例如,在表單提交之前,頁面的URL是http://localhost/Test/index.php。之後,表單提交,頁面重新加載和URL變成http://localhost/Test/index.php?

問題是爲什麼?我該如何解決這個問題。

<?php 
print_r($_GET);//check 
?> 

<!DOCTYPE html> 

<html> 

<head> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.1/css/materialize.min.css"/> 
    <script src="<script 
    src="http://code.jquery.com/jquery-3.2.1.js" 
    integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" 
    crossorigin="anonymous"></script>"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.1/js/materialize.min.js"></script> 
</head> 

<body> 
    <form action="" method="get"> 

     <div class="input-field"> 
      <input type="text" id="nameInput" class="validate" /> 
      <label for="nameInput">Name: </label> 
     </div> 


     <button type="submit" class="btn waves-light waves-effect">Submit Form</button> 

    </form> 
</body> 

</html> 
+1

'輸入類型中缺少名稱屬性' – Saty

+2

您沒有發送任何包含該表單的數據。您需要爲輸入元素添加'name'屬性。 – Oen44

+1

name attribue missing – mehulmpt

回答

5

$ _GET數組在頁面的頂部印刷是空的。

這是因爲需要提供對input一個name屬性爲它被添加到請求中發送的鍵/值對數據:

<input type="text" id="nameInput" class="validate" name="foo" /> 

?被附加到網址。例如,在表單提交之前,頁面的URL是http://localhost/Test/index.php。表單提交後,頁面重新加載並且URL變爲http://localhost/Test/index.php?

這是因爲這是GET請求的工作原理;該信息將作爲application/x-www-form-urlencoded數據附加到URL。

一旦您發送了加入inputname屬性的請求,URL將變成:

http://localhost/Test/index.php?foo=[value] 
0

您的代碼是否存在某種語法錯誤?

<script src="<script 
src="http://code.jquery.com/jquery-3.2.1.js" 
integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" 
crossorigin="anonymous"></script>"></script> 

請首先檢查語法。