无法从php回显javascript警报
我已经在寻找答案,但我知道如何从php获得警报,我只是不知道我在这段特定代码上做错了什么。无法从php回显javascript警报,javascript,php,Javascript,Php,我已经在寻找答案,但我知道如何从php获得警报,我只是不知道我在这段特定代码上做错了什么。 在添加if语句之前,我一直在工作 if ($errors) { echo "<script type='text/javascript'>"; echo "alert('Records Were Uploaded');"; echo "window.location.href = 'EmployeePicker.php';"; e
在添加if语句之前,我一直在工作
if ($errors) {
echo "<script type='text/javascript'>";
echo "alert('Records Were Uploaded');";
echo "window.location.href = 'EmployeePicker.php';";
echo "</script>";
} else {
echo "<script type='text/javascript'>";
echo "alert('There was a problem with your file');";
echo "window.location.href = 'csvUpload.php';";
echo "</script>";
}
if($errors){
回声“;
echo“警报('记录已上载');”;
echo“window.location.href='EmployeePicker.php';”;
回声“;
}否则{
回声“;
echo“警报('您的文件有问题');”;
echo“window.location.href='csvUpload.php';”;
回声“;
}
刚开始的时候效果很好
echo "<script type='text/javascript'>";
echo "alert('Records Were Uploaded');";
echo "window.location.href = 'EmployeePicker.php';";
echo "</script>";
echo”“;
echo“警报('记录已上载');”;
echo“window.location.href='EmployeePicker.php';”;
回声“;
如果你把所有事情都说出来,就做吧
echo "<script type='text/javascript'>";
echo "alert('There was a problem with your file');";
echo "window.location.href = 'csvUpload.php';";
echo "</script>";
echo”“;
echo“警报('您的文件有问题');”;
echo“window.location.href='csvUpload.php';”;
回声“;
这是行不通的。我很困惑。为什么第二个警报不起作用是没有道理的
我忘了提到,在上面的if语句中,第一个警报将起作用,第二个警报我无法触发
很抱歉造成混淆,$错误是一个错误。如果是真的,上传了一个文件,如果是假的,则没有上传。我认为你做的与你想要的相反: 您的if案例与内部执行的操作不匹配。 也许你应该:
if (!$errors) {
echo "<script type='text/javascript'>";
echo "alert('Records Were Uploaded');";
echo "window.location.href = 'EmployeePicker.php';";
echo "</script>";
} else {
echo "<script type='text/javascript'>";
echo "alert('There was a problem with your file');";
echo "window.location.href = 'csvUpload.php';";
echo "</script>";
}
只要你愿意:)
[编辑]注意,根据
$errors
保留的内容(整数或数组),您可以通过检查是否没有错误$如果是整数或,则出现错误
!计数($errors)
if数组
[编辑]以独立方式尝试第二段代码 如果你需要追踪什么是错误的,你需要一点一点地隔离! 首先尝试将
code 1
作为一个新的php文件,如果它没有在您的系统上发出警报和重定向,则说明您的配置有问题。
如果它起作用,那么代码逻辑中就有错误。
通过首先将$errors
变量设置为1或0,我还可以在没有pb的情况下运行code 2
代码1
<?php
$errors = 1;
echo "<script type='text/javascript'>";
echo "alert('There was a problem with your file');";
echo "window.location.href = 'csvUpload.php';";
echo "</script>";
?>
它应该能发出良好的回声。尝试检查您的php错误日志文件,看看是否有任何线索,在那里的问题
我个人的一个小偏好可能会帮助你,那就是把逻辑分开一点。请看下面
<?php
// STATUS
$errors = true;
// OUTPUTS
$upload_success = "<script type='text/javascript'>";
$upload_success .= "alert('Records Were Uploaded');";
$upload_success .= "window.location.href = 'EmployeePicker.php';";
$upload_success .= "</script>";
$upload_fail = "<script type='text/javascript'>";
$upload_fail .= "alert('There was a problem with your file');";
$upload_fail .= "window.location.href = 'csvUpload.php';";
$upload_fail .= "</script>";
//LOGIC
if ($errors) {
echo $upload_success;
} else {
echo $upload_fail;
}
?>
检查Javascript控制台是否有错误。我尝试了你的代码,效果很好。问题出在别处,或者您没有正确复制。我同意@Barmar的说法,您的代码对我来说运行良好。除了$errors
变量的模糊性(如果为真——表示存在/are/errors——它将带您进入页面,说明一切正常)之外,一切正常。也许您可以展示$errors
变量是如何设置的?您可能还需要发布php代码……是的,他将if
向后设置。但问题是,当他完全取出if
时,第二块回声就失败了。“所以这里有一个不同的问题。”巴尔马,这个问题在我们回答后被编辑了。现在答案可能不准确。我稍后会检查:)编辑只是以“对不起”开头的一行。没有任何代码。
<?php
$errors = 1;
if ($errors) {
echo "<script type='text/javascript'>";
echo "alert('Records Were Uploaded');";
// echo "window.location.href = 'EmployeePicker.php';";
echo "</script>";
} else {
echo "<script type='text/javascript'>";
echo "alert('There was a problem with your file');";
// echo "window.location.href = 'csvUpload.php';";
echo "</script>";
}
?>
<?php
// STATUS
$errors = true;
// OUTPUTS
$upload_success = "<script type='text/javascript'>";
$upload_success .= "alert('Records Were Uploaded');";
$upload_success .= "window.location.href = 'EmployeePicker.php';";
$upload_success .= "</script>";
$upload_fail = "<script type='text/javascript'>";
$upload_fail .= "alert('There was a problem with your file');";
$upload_fail .= "window.location.href = 'csvUpload.php';";
$upload_fail .= "</script>";
//LOGIC
if ($errors) {
echo $upload_success;
} else {
echo $upload_fail;
}
?>