无法将HTML表格内容作为表单数据在POST请求中传递?

3
我有一张表格,代码如下, 这个表格里有select和checkbox,我试图用表单包装我的表格并将其提交到results.php来输出, 但是当我提交表单时,它没有起作用。如何从results.php获取复选框的选中值?
<script>   
var currentSelected = "";
var currentItem = "";
function show(obj, item) {   
if (currentSelected != "" && currentSelected != obj) {
    currentSelected.checked = false;
    document.getElementById(currentItem).style.display = currentSelected.checked ? "block" : "none"; 

}
document.getElementById(item).style.display = obj.checked ? "block" :"none";
currentSelected = obj;
currentItem = item;
}
</script>
<form action="results.php" method="post">
    <table width="805" border="0" >
        <tr>
          <td width="30">&nbsp;</td>
        <td width="30">&nbsp;</td>
        <td width="30">&nbsp;</td>
        <td width="30">&nbsp;</td>
        <td width="38">&nbsp;</td>
        <td width="25">&nbsp;</td>
        <td width="114">&nbsp;</td>
        <td width="456">&nbsp;</td>
      </tr>
        <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
        <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>Range</td>
        <td>&nbsp;</td>
        <td><p>
            <input type="checkbox" name="absolute" onChange="change(this)"  onclick="show(this,'s1');">
            Absolute</p>
          <p>&nbsp;</p>
            <p>
            <input type="checkbox" name="quick" onChange="change(this)" onclick="show(this,'s2');">
            Quick</p></td>
        <td><p>
         <div id="s1" style="display:none">
            <input class="date" id="datepicker" type="text" value="" name="from"  placeholder="From" onFocus="this.value = '';" onBlur="if (this.value == '') {this.value = '';}" required=>
            <input class="date" id="datepicker1" type="text" value="" name="to" placeholder="To" onFocus="this.value = '';" onBlur="if (this.value == '') {this.value = '';}" required=>
            </div>
          </p>
          <p>&nbsp;</p>
            <p>
            <div id="s2" style="display:none">
            <select name="quickselect" id="quickselect"  >
                <option value="30">Last 30 minutes</option>
                <option value="60">Last 1 hour</option>
                <option value="4h">Last 4 hour</option>                 
              </select>
              </div>
          </p></td>
      </tr>
        <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td colspan="2">&nbsp;</td>
      </tr>
        <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>Location</td>
        <td>&nbsp;</td>
        <td colspan="2">
       </td>
      </tr>
        <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td colspan="2">&nbsp;</td>
      </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>Index</td>
          <td>&nbsp;</td>
          <td colspan="2"><select name="loc" id="locselect" >
            <option value="la">LA</option>
            <option value="ny">NY</option>
            <option value="all">CA & NY </option>
          </select></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td colspan="2">&nbsp;</td>
      </tr>
       <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>Keyword</td>
        <td>&nbsp;</td>
        <td colspan="2">
          <input type="text" name="keyword" id="keyword" width="200">
        </span></td>
      </tr>
        <tr>
          <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td colspan="3"><div class="bnr-btn">
          <input type="submit" value="Search">
          </div></td>
      </tr>
      </table>
      </form>

results.php

 <?php
   //how to echo the checkbox value ?????????

   $quickselect= $_POST["quickselect"];
   $locselect =$_POST["locselect "];
   $keyword = $_POST["keyword "];
  ?>

在result.php文件中,尝试使用类似于var_dump()或者print_r()的函数来输出$_POST变量的值,并告诉我们你看到了什么。例如:<?php var_dump($_POST); ?> - Muriano
当我点击提交时,它没有重定向到results.php。 - matt.crawfoord
从文件中删除所有的JavaScript和<script>标签,检查您是否没有阻止按钮或表单提交的默认操作。 - Muriano
我已经注释掉了所有的JavaScript代码,但仍然无法重定向。提交按钮也没有起作用。 - matt.crawfoord
也许你的代码不够干净,整理一下标签,并只保留表单元素,然后再尝试发送。接着,逐步完成表格。这是我现在能告诉你的唯一建议。 - Muriano
2个回答

0

使用PHP从POST请求中检索值,您可以像这样使用:

$checkbox = $_POST['absolute'];

参数名称和值与您的HTML标签中相同。

例如:

<input name="absolute" type="checkbox" value="您的值" />


但是如果选择了“快速”复选框,用户将只能选择一个复选框。 - matt.crawfoord
尽管这段代码可能回答了问题,但提供关于它为什么和/或如何回答问题的额外上下文会显著提高其长期价值。请编辑您的答案以添加一些解释。 - Toby Speight
@matt.crawfoord 你的HTML缺少"value"属性吗?尝试添加它。 - slashsharp

0

对于复选框:

$checkbox1=$_POST['absolute'];
$checkbox2=$_POST['quick'];

获取日期值的FOR循环

$from=$_POST['from'];
$to=$_POST['to'];

这不是对OP的回应。 - Muriano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接