【发布时间】:2013-08-03 21:29:02
【问题描述】:
我有一个 html 表单来收集姓名和地点,用户提交表单后,out 将使用 php echo 显示在页面底部
我的要求是,
在表单提交之前和用户输入数据并提交之后隐藏output div,我必须使output div可见以使用php echo显示表单输出
这是我的 HTML 代码:
<div class="main">
<form id="main" name="main" action="#text" method="post">
<div class="input">
<div id="name">
<div class="block">
<div class="input-quest">Your Name</div>
<div class="input-resp"><span><input class="textbox" id="nm" name="nm" type="text" value="" /></span>
</div>
</div>
</div>
<div id="place">
<div class="block">
<div class="input-quest">Your Place</div>
<div class="input-resp"><span><input class="textbox" id="pl" name="pl" type="text" value="" /></span>
</div>
</div>
</div>
</div>
<div class="submit">
<input id="generate" type="submit" name="script" value="generate" />
<input type="submit" id="clear" name="clear" value="clear" />
</div>
</form>
<div class="output">
<?php $name = $_POST['nm']; $place = $_POST['pl']; echo "Hello, I am $name and I am from $place"; ?>
</div>
</div>
它包含output div 部分的 PHP 回显代码。
我已经在之前的问题中搜索过解决方案,并尝试了下面提到的方法
1.为output div添加了一个内联css标签来隐藏它
<div id="output" style="display: none;">
<!-- echo php here -->
</div>
并在提交期间添加了javascript来调用函数
$('main').submit(function(){
$('#output').show();
});
没用。
2.用下面的javascript代码试过
$('main').submit(function(e){
$('#output').show();
e.preventDefault();
});
没用。
3.删除了用于隐藏输出 div 的内联 css,并将其添加到我的 css 样式表中
<div id="output">
在样式表中
#output{
display:none;
}
并在提交时使用以下 javascript 代码
$('main').submit(function(){
$('#output').css({
'display' : 'block'
});
});
没用。
-
在表单提交的同时添加了 onclick 功能
并提交按钮代码:
<input id="generate" type="submit" name="script" value="generate" onclick="showoutput()"/>
和javascript:
showoutput(){
$('#output').slideDown("fast");
}
与
showoutput(){
$('#output').show();
}
没用。
请提出解决方案。
【问题讨论】:
-
用php设置div的显示。 javascript 将无法工作,因为提交将重新加载页面
-
$('main')没有任何意义使用$('#main')然后尝试 -
为什么需要 jQuery/CSS 呢?如果正在提交表单,只需检查
$_POST['nm'] && $_POST['pl']是否存在,如果为真,则回显它们和div -
如果你真的想让它提交并做你想做的事,你需要使用ajax,否则,当你提交时它会重新加载,或者去
action页面。如果您使用 ajax,请使用onclick函数进行提交。在你使用的函数里面,添加你想要的淡出/入。 -
@ billyonecan :我没有尝试使用方法,因为它必须重新创建一个 div id。相反,我想到了使用 show \ hide 选项。
标签: php javascript jquery html javascript-events