如果我在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>