无法使用php形式的回声

时间:2016-10-19 01:05:40

标签: php html forms

我的PHP表单似乎运行正常。页面出现,当我点击提交按钮时,会触发开头的isset($ _ POST ['提交']条件)并运行代码。

唯一的问题是我在代码中有几个echo线来生成一个JS警告框。似乎都没有被召唤。我不确定是否正在调用外部PHP函数,因为我无法测试返回的值。

我的PHP看起来像这样

<?php if (isset($_POST['submitted'])) {
$output = checkData(); 
if ($output != "done")
{
    echo '<script type="text/javascript">alert("' . $output . '"); </script>';
}
else 
{
    createMeeting();
    echo '<script type="text/javascript">alert("You meeting has been created. All of the recipients should shortly receive an email"); </script>';
    header('Location: index.php');
}   
} else { ?>
<center>
<form method="POST" action="">
...
<input type="submit" name="submitted" value="Create Meeting">
</form>
<?php 
} 
?>

我的checkData()函数只是检查表单数据的其他部分是否为空,并以&#34; done&#34; (没有错误)或其中一个表单元素为空的消息。

createMeeting()将根据数据创建会议并将其提交给我的服务器 - 目前,它采用与checkData()相同的数据然后返回。

当我通过在线PHP代码检查程序运行它时,这两个函数都没有错误。

3 个答案:

答案 0 :(得分:0)

检查你的php.ini。是设置为显示还是隐藏错误?它可能在checkdata中遇到错误并且在没有警告的情况下死亡。

答案 1 :(得分:0)

我已经尝试过您的代码,在我的情况下它似乎运行正常。

<?php if (isset($_POST['submitted'])) {
$output = "done"; //even if this line is not equal to 'done', the code still works fine
if ($output != "done")
{
    echo '<script type="text/javascript">alert("' . $output . '");</script>';
}
else
{
    //    createMeeting();
    echo '<script type="text/javascript">alert("You meeting has been created. All of the recipients should shortly receive an email"); </script>';
    //    header('Location: index.php');
}
} else { ?>
    <center>
    <form method="POST" action="">
    ...
    <input type="submit" name="submitted" value="Create Meeting">
    </form>
<?php
}
?>

据我所知,你的createMeeting()或checkData()函数存在错误。你能否更具体地说明错误信息(如果有的话)?

答案 2 :(得分:0)

如果你想弹出警告框然后重定向它,那么这不是正确的方法。

注意:警告框不会执行或显示,因为页面在显示之前会重定向。最好的方法是创建一个JavaScript函数

<script>
// this function pop up and redirect your page after closing the alert box
function PopupThenRedirect() {
    // pop up the alert box
    alert("You meeting has been created. All of the recipients should shortly receive an email");
    // redirect your page
    location.href = '/index.php';
}
</script>

<?php if (isset($_POST['submitted'])) {
$output = checkData(); 
if ($output != "done")
{
    echo '<script type="text/javascript">alert("' . $output . '"); </script>';
}
else 
{
    createMeeting(); // make sure this php function exist or else it leads to error
    echo '<script type="text/javascript"> PopupThenRedirect(); </script>';
}   
} else { ?>
<center>
<form method="POST" action="">
...
<input type="submit" name="submitted" value="Create Meeting">
</form>
<?php 
} 
?>