您混淆了服务器端代码和客户端代码。
PHP 在服务器上使用,并将生成发送到浏览器的 HTML(该 HTML 可以包含 jquery)。但jquery只能在浏览器上运行。
问题是你正在使用 jquery 命令在服务器端,使用以下行...
(这是第二个if
声明在你的eshop_extras_errorcheckout
功能)
if($('#check_id').is(":checked"))
这应该是 PHP 代码,而不是 jquery...类似...
if(isset($_POST('check_id'))){
// Do something
}
根据OP的评论补充
您的复选框在页面回发时没有保持“选中”状态的原因是您正在创建<input type="checkbox"
每次代码,如果您没有具体提供checked
属性,页面显示时会取消勾选。
(我不确定您是否熟悉 ASP.NET,但在该技术中,如果您勾选一个复选框然后回发,ASP.NET 将为您处理此问题。PHP 不按标准执行此操作,您需要告诉它检查它。)
因此,例如,当您在您的文件中“回显”以下行时eshop_extras_checkout
函数(注意,它包含在 PHP 字符串中,它不是直接标记):
<input type="checkbox" name="forms2[]" id="ArticlesOrderForm"
value="ArticlesOrderForm"> <b>Articles Order Form </b><br>
...你需要有条件地放置checked
属性,类似这样的:
(isset($_POST('ArticlesOrderForm')) ? "Checked" : "")
...这会导致字符串看起来像
<input type="checkbox" name="forms2[]" id="ArticlesOrderForm"
value="ArticlesOrderForm" ' . (isset($_POST('ArticlesOrderForm')) ? "Checked" : "") . '> <b>Articles Order Form </b><br>
因此,当最终的 HTML 发送到浏览器时,该属性checked
如果选中该复选框,则会出现,如果未选中,则不会出现。
希望这是有道理的