Firefox会立即自动关闭表单

时间:2011-09-27 10:02:00

标签: php ajax oscommerce

编辑:已修复,我刚删除了表格并使其无表格,需要使用css来对排版进行排序,但是跨浏览器工作,谢谢大家。

我有一个非常奇怪的问题,我正在尝试在oscommerce中进行AJAX快速订购表单。一切都远离这段代码:

while ($sql_results = tep_db_fetch_array($sql_query)) {

    $sout2 = "<tr>";
    $sout2 .= '<form id="pp'. $sql_results['products_id'] . '" method="get" action="quickorder.php"></tr><tr>';
    $sout2 .= "<td valign=\"top\" width=\"100\"><b><a href=\"" . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $sql_results['products_id']) . "\">" . $sql_results['products_model'] . "</a></b></td>";
    $sout2 .= "<td valign=\"top\" width=\"300\">" . $sql_results['products_name'] . "</td>";
    //$sout .= "<td valign=\"top\" width=\"100\">" . tep_image(DIR_WS_IMAGES . $sql_results['products_image'], $sql_results['products_name'], 50, 50) . "</td>";
    $sout2 .= "<td valign=\"top\" width=\"150\"><input type=\"hidden\" id=\"pid\" name=\"pid\" value=\"" . $sql_results['products_id'] . "\" /><input id=\"pqty\" name=\"pqty\" type=\"text\" value=\"1\" /></td>";
    $sout2 .= "<td valign=\"top\" width=\"50\"><input type=\"submit\" value=\"Add\" /></td>";
    $sout2 .= "</form>";
    $sout2 .= "</tr>";
    echo $sout2;
}

这使firefox立即关闭表单标记:

<form id="pp266" method="get" action="quickorder.php"></form>

IE正确地填写表格。

1 个答案:

答案 0 :(得分:0)

彻底检查你的标记。你有像

这样的东西
<tr><form ...></tr>

这会立即关闭tr,导致所有嵌套元素也关闭(FF行为,IE表现不同)。所以,替换

$sout2 .= '<form id="pp'. $sql_results['products_id'] . '" method="get" action="quickorder.php"></tr><tr>';

$sout2 .= '<form id="pp'. $sql_results['products_id'] . '" method="get" action="quickorder.php"><tr>';

此外,将表单移到行外可能是个好主意,因为有些浏览器不允许form标记显示在tr内,只有td和{{ 1}}。