1

我有一个显示表格的页面,并且在每个表格行中嵌入一个表单,该表单从下拉菜单中提交一些数据。我正在使用 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>

为什么会这样????我还看到了帖子:表单问题(在表格中提前关闭)

我在“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(); 
    }
}
4

2 回答 2

1

Ajax 响应不是有效的 HTML。表格不能包裹在 table/tr/td/th 中。

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

看看这个类似的问答

于 2013-08-29T08:54:31.737 回答
0

我的猜测来自您的数据库的数据有引号(单引号或双引号),这会破坏浏览器中的渲染,并且您在实际上没有在其中关闭,并且由于表单内没有提交按钮,它不会做任何事情。

将虚拟数据放入数据库中,不带任何引号并检查

于 2013-08-29T07:56:57.710 回答