表单值未通过jquery提交传递

时间:2013-10-18 10:29:33

标签: 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'] . "</td></form>";

单击表格中的单元格并想要传递单击的单元格的值时,我提交表单。

<script>
$(".hols").click(function() {
    $("#showbooking").submit();
})
</script>

重新加载后我正在测试:

echo "<p> ID of clicked booking was: " . $_POST['clickedcalid']; . "</p>";

但价值没有通过,我不知道为什么。

可能是因为表格嵌入表格中?

3 个答案:

答案 0 :(得分:3)

首先,form元素需要进入td。其次,只有表单元素的值在表单提交中发送,即inputselecttextarea等。试试这个:

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>';

答案 1 :(得分:1)

您无法将<form>置于tr元素内,包裹td<tr> specification

  

允许的内容:零或更多&lt; td&gt;或者&lt; th&gt;元素,或它们的混合

同样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>';

答案 2 :(得分:-1)

要从$ _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