嗨,我有一个包含3个表格的div。这些应该是页面加载时屏幕上的唯一内容。提交任何一个时,下图显示了一个图表。我想要做的是在PHP IF语句中使div消失,其中包含表单。声音简单吗?
这是我的代码:
if($_GET['submit1']){
echo "<script type='text/javascript'>$('#options').css('display','none');</script>";
然而,当我提交其中一个表格(因此发生$ _GET)时,div仍然存在?
编辑:
如果我尝试人们在一行回答,我会得到这个:
Parse error: syntax error, unexpected '(', expecting T_VARIABLE or '$'
但是,如果我输入人们的多行答案,没有错误,但div仍显示!
答案 0 :(得分:3)
为什么要用JavaScript隐藏表单?
只需使用PHP:
<?php
if(!isset($_GET['submit1'])) {
?>
//<form> your form HTML here
<?php
} else {
?>
<p>Your submitted data: <?php print_r($_GET); ?></p>
<?php
}
?>
因此,只有在您未提交其中一个表格时才会显示您的表格。如果您有多个表单,则可能需要调整参数,例如
if(!isset($_GET['submit1']) && !isset($_GET['submit2'])) {
修改:如果您想在提交后保留表单但只隐藏它,您可以这样做:
<?php
$formsVisible = !isset($_GET['submit1']));
$formsDisplay = $formsVisible ? 'block' : 'none';
?>
<form style="display:<?php echo $formsDisplay; ?>">
<!-- ... --->
</form>
答案 1 :(得分:1)
您需要添加DOM ready事件:
if($_GET['submit1']) {
echo '<script type="text/javascript">' . "\n";
echo ' $(function() {' . "\n";
echo ' $("#options").hide();' . "\n";
echo ' });' . "\n";
echo '</script>' . "\n";
}
答案 2 :(得分:0)
修改强> 你得到一个解析错误,因为你使用双引号,所以php解析器正在读取美元符号作为php变量。我会切换到单引号php语法,让你的生活更轻松:
if($_GET['submit1']){
echo '<script type="text/javascript">
$(function(){
$("#options").css("display","none");
});
</script>';
}
确保将jquery代码包装在onLoad函数$(function(){};