Form action page is not called after click submit button
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″>
来源:https://www.codenong.com/50082613/