Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery提交未传递表单值_Php_Jquery_Forms - Fatal编程技术网

Php jquery提交未传递表单值

Php jquery提交未传递表单值,php,jquery,forms,Php,Jquery,Forms,我在初始页面加载时创建的表中嵌入了一个表单: echo "<form id='showbooking' action='calendar.php' method='post'>"; echo "<td name='clickedcalid' value='" . $resarr[$k]['calid']; echo "' title='" . $resarr[$k]['coms'] . "' class='hols'>"; echo $resarr[$k]['typ']

我在初始页面加载时创建的表中嵌入了一个表单:

echo "<form id='showbooking' action='calendar.php' method='post'>";
echo "<td name='clickedcalid' value='" . $resarr[$k]['calid'];
echo "' title='" . $resarr[$k]['coms'] . "' class='hols'>";
echo $resarr[$k]['typ'] . "</td></form>";
我在单击表中的单元格时提交表单,并希望传递所单击单元格的值

<script>
$(".hols").click(function() {
    $("#showbooking").submit();
})
</script>
重新加载后,我将使用以下内容进行测试:

echo "<p> ID of clicked booking was: " . $_POST['clickedcalid']; . "</p>";
但是这个值没有被传递,我不知道为什么

可能是因为表单嵌入了一个表中?

您不能将tr元素放入其中,包装td。说

允许含量:零或多个元素,或它们的混合

另外,value属性对于td元素无效。您需要重新构造标记

echo '<td class="hols" title="' . $resarr[$k]['coms'] . '">' .
    '<form id="showbooking" action="calendar.php" method="post">' .
        '<input type="hidden" name="clickedcalid" value="' . $resarr[$k]['calid'] . '">' .
        $resarr[$k]['typ'] .
    '</form>' .
'</td>';
首先,表单元素需要进入td内部。其次,表单提交中仅发送表单元素的值,即输入、选择、文本区域等。请尝试以下操作:

echo '<td class="hols" title="' . $resarr[$k]['coms'] . '">';
echo '<form id="showbooking" action="calendar.php" method="post">';
echo '<input type="text" name="clickedcalid" value="' . $resarr[$k]['calid'] . '" />';
echo $resarr[$k]['typ'] . '</form></td>';

要从$\u POST中获取值,您需要有输入标记

echo "<form id='showbooking' action='calendar.php' method='post'>";
echo "<td><input type='text' name='clickedcalid' value='" . $resarr[$k]['calid'];
echo "' title='" . $resarr[$k]['coms'] . "' class='hols' />";
echo $resarr[$k]['typ'] . "</td></form>";
谢谢,
Naumche

包裹td OO的表单标记应该有一个名为clickedcalid tds的输入元素不会传递数据使用表单元素,比如必须是的子元素。太好了,这很有效。我觉得这似乎是一个很糟糕的做法,你能建议从另一个角度来看它吗?你为什么使用文本输入?在OP的代码中,td的value属性不应该在页面上呈现work@AlistairWeir,那么你为什么不首先使用我的答案呢?我原以为你的修改是在这篇文章发布之后才进行的,但看起来不是这样。这两个都是很好的答案。