[英]Display a hidden div after a html form submit to show output
我有一個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();
}
它沒用。
請建議一個解決方案來做到這一點。
我不確定為什么你需要使用js / css。 只需檢查變量是否已發布,如果是,則回顯它們(您必須將表單操作設置為指向同一頁面):
<?php if (!empty($_POST['nm']) && !empty($_POST['pl'])) { ?>
<div class="output">
Hello, I am <?php echo $_POST['nm']; ?>, and I am from <?php echo $_POST['pl']; ?>
</div>
<?php } ?>
如果您只想在div.output
顯示名稱和位置,而無需實際提交表單,則可以執行以下操作:
$('#main').submit(function(e) {
e.preventDefault(); // prevent form from being submitted
$('div.output').text('Hello, I am ' + $('#nm').val() + ', and I am from ' + $('#pl').val());
});
<?php if(isset($_POST['nm'])) { ?>
<div class="output">
<?php $name = $_POST['nm']; $place = $_POST['pl']; echo "Hello, I am $name and I am from $place"; ?>
</div>
<?php } ?>
使用javascript / jquery(ajax)創建一個單獨的頁面來處理form
,並讓它返回您想要的信息,隱藏form
並顯示.output
div。
PHP頁面:
<?php
$name = $_POST['nm'];
$place = $_POST['pl'];
echo "Hello, I am ".$name." and I am from ". $place;
?>
javascript / jquery會將其作為responseText
捕獲,然后在.output
div上使用innerHTML
來放置該responseText
。 然后,您可以使用JS / Jquery隱藏表單並顯示.output
你可以用php完全實現這一點。 我將使用的最簡單方法是使用給定值創建隱藏輸入。 一旦用戶提交表單,該變量將存在,您可以在php中獲取它。
首先,您需要將整個頁面更改為.php,並回顯所有html。 然后在表單中,將操作設置為頁面的名稱,以便它將變量發送給自己,然后您可以在同一頁面上處理它們。
將此添加到html:
<input type='hidden' name='display' value='display' />
在你的PHP中,添加:
if (isset($_POST['display']){
echo "make the div here";
}else{
//don't show the div
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.