ajax 生成的 PHP 表单无法正常工作

标签 php javascript ajax forms html-table

我有一个显示表格的页面,并且在每个表格行中嵌入一个表单,该表单从下拉菜单提交一些数据。我正在使用 AJAX 生成页面。下面是我在 php 页面中回显的内容。

echo "<table id=\"comp\">";
echo "<tr> 
<th> CID </th>
<th> USERNAME </th>
<th> NAME </th>
<th> DESCRIPTION </th>
<th> ADDRESS </th>
<th> PHONE </th>
<th> DATE </th>
<th>Choose JE</th>
<th></th>
</tr>";
for($i=0;$i<$count;$i++)
{
   $c = mysql_result($result, $i, 'cid');
echo "<form name=\"$i\" action=\"je_select.php\" method=\"post\">
<tr id=\"$i\">";
echo "<td>".$c."</td>";
echo "<td>".mysql_result($result, $i, 'uname')."</td>";
echo "<td>".mysql_result($result, $i, 'name')."</td>";
echo "<td>".mysql_result($result, $i, 'desc')."</td>";
echo "<td>".mysql_result($result, $i, 'address')."</td>";
echo "<td>".mysql_result($result, $i, 'phone')."</td>";
echo "<td>".mysql_result($result, $i, 'date')."</td>";

echo "<td>$dropdown</td>";
echo "<td><input type=\"hidden\" name=\"cid\" value=\"$c\"/><input type=\"submit\" value=\"Forward\"/></td>";
    echo "</tr></form>";
}       
echo "</table>";

现在的问题是表单显示正常,但单击“提交”按钮后,表单未提交。它根本什么也不做。虽然我的另一个项目上的类似代码运行得很好。

请帮我解决这个问题。我陷入困境,我需要快速完成这个项目。

编辑

我尝试打开源代码。我看到表单标签在打开的同一位置关闭:

<form name=\"$i\" action=\"je_select.php\" method=\"post\"></form>

为什么会发生这种情况?我还看到了这个帖子:Form Issue (closing itself early in table)

我在“tr”标签之前打开了表单标签,但它仍然不起作用。

更多

我注意到的另一件事是,在 AJAX 页面的源代码中,由于无法解释的原因,该表还有一个 tbody 标记。虽然 tbody 标签也存在于我的一个较旧的项目中,但类似的事情在那里起作用。请帮助我。

AJAX 功能

要点击的链接:

    <div id="choices">
        <ul id="clist">
            <a href="#" onclick="ajax(1);"><li>Pending Complaints</li></a>
            <a href="#" onclick="ajax(2);" ><li>Handled Complaints</li></a>
            <a href="logout.php" ><li>Logout</li></a>
            <div class="clear"></div>
        </ul>
    </div>

ajax函数:

        function ajax(val) {
        var xmlhttp;
        if (active != val) {
        active = val;
        if (window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        else
        { 
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        if (xhr) {
            xhr.abort();
        }
        xhr = xmlhttp;
        xmlhttp.onreadystatechange=function()
        {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {

            document.getElementById("content").innerHTML=xmlhttp.responseText;
            document.getElementById("banner").innerHTML=arr[val - 1];
        }
        }
            xmlhttp.open("GET","dispcae.php?&s="+val , true);
        xmlhttp.send(); 
    }
}

最佳答案

Ajax 响应不是 valid HTML 。表单不能包含在 table/tr/td/th 内。

尝试重构 HTML,并使用 Form 来环绕表格。

看看这个类似的 Q&A

关于ajax 生成的 PHP 表单无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18504328/

相关文章:

php - 从服务内部调用服务?

javascript - AJAX 函数没有从它调用的函数接收返回数据

javascript - 多次发出ajax请求

php - DomPDF奇怪的填充

php - SugarCRM 联系人模块中自动填充办公电话

php - 如何在Python中解码使用gzip压缩的源代码

Javascript - 如何正确使用replace()函数

javascript - 动态(2 级)Javascript/CSS 加载 IE6

javascript - 使用 Express 和 Mongoose 将表单数据发送到现有 MongoDB 文档数组

javascript - 将带有图像的表单上传到ajax和php