| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<form class = “form-inline” action = “./test.php?id=1” > <li class = “nav-item” > <select class = “custom-select custom-select-lg mb-3” id = “objectType” > <option selected >Object Type </option > <option value = “Toy” >Toy </option > <option value = “Furniture” >Furniture </option > <option value = “Gift” >Gift </option > <option value = “Household” >Household </option > <option value = “Instrument” >Instrument </option > </select > </li > <li class = “nav-item” > <li class = “nav-item” > </form > |
我有这个表格。当提交按钮被调用 test.php 页面被调用,请求 id 值为 1。在 test.php 表单字段的值将用于进行查询。
部分
的test.php代码片段
| 1 2 3 4 5 6 7 8 9 10 |
$id = $_REQUEST [ ‘id’ ] ; if ( $id == 1 ) { $result = search ( $_POST [ ‘imageName’ ] , $_POST [ ‘objectType’ ] , $_POST [ ‘materialType’ ] ) ; echo $_POST [ ‘imageName’ ] ; } else { $result = home_page_image ( ) ; } |
当我在填写完字段后单击提交按钮时, test.php?id=1 没有出现在浏览器地址栏中,这确认我没有调用该页面。
编辑 1
我已经添加了@PL200 在他的回答中提到的方法( POST ),但是在 test.php 中的 search() 函数之后没有回显。我也发出了警报,但未显示。警报在 search 函数之前工作,并且 post 值既不是在 search 函数之前也不是之后的回显。这表明表单值未发布在 test.php.
编辑 2
实际上,当单击提交按钮时,我调用了相同的页面。
您没有为您的表单添加任何方法。将 html 的第一行更改为:
| 1 | <form class = “form-inline” method = “POST” action = “./test.php?id=1” > |
这应该可以解决您遇到的问题。
- 我添加了方法,但在 test.php 中的 search() 函数之后没有回显。我也发出了警报,但未显示。
我理解您的意图,但请注意,某些浏览器会忽略使用表单操作属性传递的查询参数。因此,每当提交表单时,在某些浏览器上可能没有定义 $_GET[‘id’] ,只是行为不一致。
此外,您没有为表单指定任何方法属性。
你应该做的
使用隐藏的输入表单元素来传递您的值,这是推荐的方式。
| 1 2 3 4 5 6 |
<form class = “form-inline” action = “./test.php” method = “post” > <!– put values to pass here –> <input type = “hidden” value = “1” name = “id” /> … </form > |
此外,您还可以将隐藏的输入字段放在表单元素之外,并使用表单 id 与输入字段表单属性一起引用它。请参见下面的示例:
| 1 2 3 4 5 6 7 |
<form id = “form-id” class = “form-inline” action = “./test.php” method = “post” > <!– put values to pass here –> … </form > <!– Bind this hidden input field to your form –> |
请注意,您可以在单个表单中使用的隐藏输入字段的数量没有限制,但是,让它变得简单。
没有 name 的表单输入。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<form class = “form-inline” action = “./test.php?id=1” method = “POST” > <li class = “nav-item” > <select class = “custom-select custom-select-lg mb-3” name = “objectType” > <option selected >Object Type </option > <option value = “Toy” >Toy </option > <option value = “Furniture” >Furniture </option > <option value = “Gift” >Gift </option > <option value = “Household” >Household </option > <option value = “Instrument” >Instrument </option > </select > </li > <li class = “nav-item” > <li class = “nav-item” > </form > |
并且在 search() 方法之后没有显示警报消息,因为在 search() 方法中出现了问题。我调试并纠正了 search() 方法中的错误。现在一切正常。
- 您越来越近了,但表格中仍然缺少 id 。您可以尝试在表单中添加 <input type=”hidden” name=”id” value=”1″>

评论(0)