编辑:已修复,我刚删除了表格并使其无表格,需要使用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正确地填写表格。
答案 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}}。