Php 无线输入在页面重新加载时消失(枚举、foreach、默认选中、记住页面重新加载时的答案)

Php 无线输入在页面重新加载时消失(枚举、foreach、默认选中、记住页面重新加载时的答案),php,javascript,html,Php,Javascript,Html,我可能暂时走错了路(疲劳…),但我已经过了4个小时或类似的时间来调试我的代码。我有一个表单,当我点击单选按钮时,它会自动提交,一旦点击,下一个表单就会出现,让我输入客户信息。但是当页面重新加载以显示另一个表单时,我的变量$CustomerType被设置并正确无误,当我完成输入表单(第二个表单)时,php检查其中的所有内容是否都正确无误,但它表示缺少变量$CustomerType,然后重新加载页面并再次要求我设置类型 我无法将所有代码粘贴到这里(约300行),但核心是: <?php $_PO

我可能暂时走错了路(疲劳…),但我已经过了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>
它似乎解决了表单的第二个问题,即不能让我更改类型(自动回滚到某人)。但现在,在表单提交中,我的选择总是回滚到[CustomerType]=>某个人而不是某个人(我检查了某个人)

这意味着我不能在页面重新加载时保留值$\u 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);
}
$array=show_enum(“客户”、“语言”);
foreach($array作为$Language)
{
$checked=“”;
如果(isset($_POST['Language']))
{
如果($_POST['Language']==$Language)$checked=“checked”;
}
如果($Language==“FR”)$checked=“checked”;
回声“;
string2languagepic($语言);
}

*OnSubmit=onClick='this.form.submit()

在查看了您的代码后,我想我已经发现了您的问题,请尝试以下方法,看看是否有效

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

如果失败,您可以始终添加一个隐藏字段,当单击单选按钮时,它会向该字段添加一个值,然后提交表单

在进一步查看您的代码后,我想我已经发现了您的问题,请尝试以下方法,看看是否有效

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

如果失败,您可以始终添加一个隐藏字段,当单击单选按钮时,它会向该字段添加一个值,然后提交表单

只是加了一句:)通常是法语。你试过什么?如何将“按钮点击循环”添加到html中?append?innerHTML?它是append,我尝试了很多方法,但我不明白为什么我的代码没有在提交时保留该值。共有两个表单:一个用于输入,另一个用于输入信息。下一个表单是通过一个正常的:提交按钮提交的,这就是诀窍!现在它开始工作了。谢谢Malcolmjust加了一句:)通常是法语。你试过什么?如何将“按钮点击循环”添加到html中?append?innerHTML?它是append,我尝试了很多方法,但我不明白为什么我的代码没有在提交时保留该值。共有两个表单:一个用于输入,另一个用于输入信息。下一个表单是通过一个正常的:提交按钮提交的,这就是诀窍!现在它开始工作了。谢谢你,马尔科姆