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"> <select class="custom-select custom-select-lg mb-3" id="materialType"> <option selected>Material Type</option> <option value="Mud">Mud</option> <option value="Cloth">Cloth</option> <option value="Thread">Thread</option> <option value="Jute">Jute</option> <option value="Cotton">Cotton</option> <option value="Can">Can</option> <option value="Bamboo">Bamboo</option> </select> </li> <li class="nav-item"> <input class="form-control" type="search" placeholder="Search"> <span class="input-group-btn"> <button class="btn btn-outline-secondary" type="submit" id="searchSubmit"><i class="fa fa-search"> </button> </span> </li> </form> |
我有这个表格。当提交按钮被调用
部分
的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(); } |
当我在填写完字段后单击提交按钮时,
编辑 1
我已经添加了@PL200 在他的回答中提到的方法(
编辑 2
实际上,当单击提交按钮时,我调用了相同的页面。
您没有为您的表单添加任何方法。将 html 的第一行更改为:
1 | <form class="form-inline" method="POST" action="./test.php?id=1"> |
这应该可以解决您遇到的问题。
我理解您的意图,但请注意,某些浏览器会忽略使用表单操作属性传递的查询参数。因此,每当提交表单时,在某些浏览器上可能没有定义
此外,您没有为表单指定任何方法属性。
你应该做的
使用隐藏的输入表单元素来传递您的值,这是推荐的方式。
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 --> <input type="hidden" value="1" name="id" form="form-id" /> |
请注意,您可以在单个表单中使用的隐藏输入字段的数量没有限制,但是,让它变得简单。
没有
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"> <select class="custom-select custom-select-lg mb-3" name="materialType"> <option selected>Material Type</option> <option value="Mud">Mud</option> <option value="Cloth">Cloth</option> <option value="Thread">Thread</option> <option value="Jute">Jute</option> <option value="Cotton">Cotton</option> <option value="Can">Can</option> <option value="Bamboo">Bamboo</option> </select> </li> <li class="nav-item"> <input class="form-control" type="search" placeholder="Search" name="imageName"> <span class="input-group-btn"> <button class="btn btn-outline-secondary" type="submit" id="searchSubmit"><i class="fa fa-search"> </button> </span> </li> </form> |
并且在