目前,我可能走错了路(疲倦..),但是我已经过了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);
}
Picture of the problem * OnSubmit = onClick ='this.form.submit()
最佳答案
在看完您的代码后,我想我已经发现了您的问题,请尝试以下操作,看看它是否有效。
echo "<input type='radio' name='CustomerType' id='CustomerType' value='$CustomerType' $checked onClick='this.form.submit();' >"
如果失败,则可以始终添加一个隐藏字段,单击单选按钮时,它会向其中添加一个值,然后提交表单。