我有一個form
進行計算,輸入數據庫並通過警報返回值。 我想用modal
代替alert
。如何在PHP中以Bootstrap模式顯示變量?
HTML
<form method="post" action="#">
<input type="text" name="alt" id="altura" required><br><br>
<input type="text" name="peso" id="peso" required><br><br>
<button type="submit" id="Send">Send</button>
</form>
PHP
function calcularIMC($altura,$peso){
$imc = 0;
if($altura >0 && $peso >0){
$imc = $peso/($altura * $altura);
}
echo '<script>';
echo 'alert("'.$imc.'");';
echo '</script>';
}
我試過如下:
- 增加了標籤</html>
代碼後php
;
- 增加了負責計算的變量:$imc
;
- 我將按鈕Send
與modal
聯繫起來。
<form method="post" action="#">
<input type="hidden" name="acao" id="acao" value="cadastrar"/>
<input type="text" name="alt" id="altura" required><br><br>
<input type="text" name="peso" id="peso" required><br><br>
<button type="submit" id="Enviar" data-toggle="modal" data-target="#myModal">Enviar</button>
</form>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<?php echo'.$imc.';?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</body>
</html>
PHP
<?php
function calcularIMC($altura,$peso){
$imc = 0;
if($altura >0 && $peso >0){
$imc = $peso/($altura * $altura);
}
return $imc;
}
?>
因此,當我點擊Send
按鈕(所有的空字段),它打開模式,並顯示'.$imc.'
爲String。 當我插入數據並點擊按鈕Send
昏暗的窗口(模式的早期效果),並迅速恢復正常。我相信modal
正在被調用,但有些延伸它給出了錯誤並關閉。
我該如何解決這個問題?
AJAX,代碼頂部:
結束的body
<?php
if ($imc !== false){
echo "<script>$('#myModal').modal('show');</script>";
}
?>
<?php
$imc = false;
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$imc = calcularImc($_POST['altura'], $_POST['peso']);
}
?>
難道是這樣?我試圖添加此代碼,但給出了相同的結果。通過提交表單,窗口變暗並迅速恢復正常。
---------------------------------更新/我管理做我想做的---- ---------------------------
<form method="post" action="#">
<input type="text" name="alt" id="altura" required><br><br>
<input type="text" name="peso" id="peso" required><br><br>
<button type="submit" id="Send" data-toggle="modal" data-target="#myModal">Send</button>
</form>
<?php
$imc = false;
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$imc = calcularImc($_POST['altura'], $_POST['peso']);
}
?>
<?php
if ($imc !== false){
echo '<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>';
echo '<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>';
echo "<script>$('#myModal').modal('show');</script>";
}
?>
</body>
</html>
function calcularIMC($altura,$peso){
$imc = 0;
if($altura >0 && $peso >0){
$imc = $peso/($altura * $altura);
}
echo '<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">';
echo $imc; // RESULT OF CALC MODAL INSIDE
echo '</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>';
}
?>
你在哪裏叫calcularIMC,你在哪裏設置$ imc?你的語法不正確。如果你想打印一個變量,只需使用'<?php echo $ imc; ?>' – Laurens
我想在'modal'裏面調用calcularIMC。 $ imc在calcularIMC中聲明。由於我的語法錯了,我該如何解決?你能幫助我嗎? – GtGtGt
您無法在已經呈現的頁面上調用php代碼。因此,如果表單已提交併且自動打開模型,您必須提交表單並在頁面上進行檢查,否則您將不得不向服務器發出AJAX請求以執行您的PHP代碼。如果您不想刷新頁面,請查找AJAX。 – Laurens