1

目前我可能走错了路(累了..),但我已经过了 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()

4

1 回答 1

1

在多看你的代码后,我想我已经发现了你的问题,试试下面的,看看它是否有效。

echo "<input type='radio' name='CustomerType' id='CustomerType' value='$CustomerType' $checked onClick='this.form.submit();' >" 

如果失败,您总是可以添加一个隐藏字段,当单击单选按钮时,它会为其添加一个值,然后提交表单。

于 2013-08-07T14:39:44.713 回答