目前我可能走错了路(累了..),但我已经过了 4 个小时或类似的时间来调试我的代码。我有一个表单,当我单击单选按钮时会自动提交,单击后会出现下一个表单,让我输入客户信息。但是当页面重新加载以显示另一个表单时,我的变量 $CustomerType 已设置并正确,当我完成输入表单(第二个)时,php 检查其中的所有内容是否正确并且确实如此,但它说我的变量$CustomerType 丢失然后重新加载页面并再次要求我设置类型。
我不能在这里粘贴我所有的代码(约 300 行),但这里是核心:
<?php $_POST['CustomerType']="SOMEONE"; ?> // Ok so this was the trick, it solved the main bug but it now fix my choice to SOMEONE only. Can't change to another type
<form method="post" action="<?php echo escaped_html($_SERVER['PHP_SELF'],'URL');?>">
<?php
$array=show_enum("customer", "CustomerType");
$checked="";
foreach($array as $CustomerType)
{
$checked="";
if(isset($_POST['CustomerType']))
{
if($_POST['CustomerType']==$CustomerType) $checked="checked";
}
echo "<input type='radio' name='CustomerType' value=".$CustomerType." ".$checked." onClick='this.form.submit()'>".$CustomerType."</input>";
}
?> </form>
编辑好的,有一些消息:通过修改顶部谁是:<?php $_POST['CustomerType']="SOMEONE"; ?>
至
if(!isset($_POST['CustomerType'])) $_POST['CustomerType']="SOMEONE";
它似乎解决了表单的第二个问题,它不能让我更改类型(自动回滚到 SOMEONE)。但是现在,在提交表单时,我的选择总是回滚到 [CustomerType] => SOMEONE 而不是 SOMEBODY(我检查了 SOMEBODY)。
这意味着我无法在页面重新加载时保留价值 $_POST['CustomerType'] 以进行提交。
例如:这个看起来是一样的,只是它是用“保存”按钮而不是 onsubmit 提交的,它工作正常。
$array=show_enum("customer", "Language");
foreach($array as $Language)
{
$checked="";
if(isset($_POST['Language']))
{
if($_POST['Language']==$Language) $checked="checked";
}
else if($Language=="FR") $checked="checked";
echo "<input type='radio' name='Language' value=".$Language." ".$checked." />";
string2languagepic($Language);
}
问题图片*OnSubmit = onClick='this.form.submit()