Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我在php中满足条件,如何在同一页面上显示结果?_Php_Forms - Fatal编程技术网

如果我在php中满足条件,如何在同一页面上显示结果?

如果我在php中满足条件,如何在同一页面上显示结果?,php,forms,Php,Forms,我想在同一页上显示一个复选框,如果选择了第二个选项,请帮我输入代码 这是我目前的代码: <form action="form1.php" method="post"> <?php $company = array (1 => 'One', 'Two', 'Three'); echo '<fieldset> <select name="companys">'; foreach ($company as $key => $value) {

我想在同一页上显示一个复选框,如果选择了第二个选项,请帮我输入代码

这是我目前的代码:

<form action="form1.php" method="post">
<?php

$company = array (1 => 'One', 'Two', 'Three');
echo '<fieldset>
<select name="companys">';
foreach ($company as $key => $value) {
    echo "<option value=\"$key\">$value</option>\n";
}
echo '</select>';
if ($company == 2) {
    echo'<p><input type="checkbox" name="tandc" value="terms" />I accept the terms and conditions
    </p>';
} else {
    echo 'OK';
};
echo '</fieldset>';
?>
</form>

$company定义为数组,但您提到的是字符串。请检查。

尝试以下操作:

<form action="#" method="post">
<?php

$company = array (1 => 'One', 'Two', 'Three');
echo '<fieldset>
<select name="companys">';
foreach ($company as $key => $value) {
    echo "<option value=\"$key\" onclick='this.form.submit()'>$value</option>\n";
}
echo '</select>';
if ($_POST['companys'] == 2) {
    echo'<p><input type="checkbox" name="tandc" value="terms" onclick="this.form.submit()"/>I accept the terms and conditions
 </p>';
} else {
    echo 'OK';
};
echo '</fieldset>';
?>
</form>

假设您将表单发布到某个地方,当前页面为form1.php

<form action="form1.php" method="post">
<?php

$company = array(1 => 'One', 2 => 'Two', 3 => 'Three');
echo '<fieldset>
    <select name="companys">';

        foreach ($company as $key => $value) {
            echo "<option value=\"$key\">$value</option>\n";
        }

echo '</select>';

if (isset($_POST['companys']) && $_POST['companys'] == 2) {
    echo'<p><input type="checkbox" name="tandc" value="terms" />I accept the terms and conditions</p>';
} else {
    echo 'OK';
}

echo '</fieldset>';

?>
</form>

若下拉列表值符合条件,则无需提交表单即可显示元素,您只需使用javascript函数即可查看下面的示例代码

<form action="form1.php" method="post">
    <?php

    $company = array(1 => 'One', 2 => 'Two', 3 => 'Three');
    echo '<fieldset>
        <select name="companys" onchange="check_option(this.value);">';

            foreach ($company as $key => $value) {
                echo "<option value=\"$key\">$value</option>\n";
            }

    echo '</select>';


    echo'<p><input type="checkbox" id="terms" name="tandc" value="terms"  style="display:none;"/>I accept the terms and conditions</p>';


    echo '</fieldset>';

    ?>
    </form>
    <script>
        function check_option(val)
        {
            if(val=='Two')
            {
                document.getElementById('terms').style.display='block';
            }
        }
    </script>

功能检查选项(val)
{
如果(val=='Two')
{
document.getElementById('terms').style.display='block';
}
}

尝试在php/js代码末尾返回false,以防止表单被提交。您如何确定是否选择了第二个选项?我认为您不需要在每个选项之后进行\n。另外,如果您希望从select动态完成,那么您需要使用javascriptI。我正在尝试使用如下所示的javascript,但复选框没有出现……非常多。(可能更好)的选择是使用javascript。@VladPreda您认为我的方法如何?我不想在任何地方发布它,我希望该复选框出现在当前页面(form1.php)上。不幸的是,在我的情况下,这是行不通的…你总是想表现出来吗?为什么不删除
if
条件或切换
if
else
条件?不,我希望只有在选择第二个选项而不提交时才显示带有文本的复选框。有可能吗?我希望在选择选项2时,带有文本的复选框显示在当前页面的选项菜单下方。。。可能吗?在您的示例中,我只看到“我接受…”文本,而不是“确定”,并且无论我选择了什么选项。它将仅显示在下面“仅选择”。我已修改了数组,也请参考该数组以及复选框中的样式。我复制了此代码,但不幸的是,复选框在我选择的任何选项中都不可见。很抱歉,这不起作用,我收到了错误消息-注意:未定义索引:companys
<form action="form1.php" method="post">
    <?php

    $company = array(1 => 'One', 2 => 'Two', 3 => 'Three');
    echo '<fieldset>
        <select name="companys" onchange="check_option(this.value);">';

            foreach ($company as $key => $value) {
                echo "<option value=\"$key\">$value</option>\n";
            }

    echo '</select>';


    echo'<p><input type="checkbox" id="terms" name="tandc" value="terms"  style="display:none;"/>I accept the terms and conditions</p>';


    echo '</fieldset>';

    ?>
    </form>
    <script>
        function check_option(val)
        {
            if(val=='Two')
            {
                document.getElementById('terms').style.display='block';
            }
        }
    </script>