我的JS函数需要在发生故障时从PHP代码返回一定的结果。
function showResult(data)
{
if (data == 'save_failed') {
document.getElementById('result').innerHTML = 'Unfortunately, we were not able to save your information. Please contact an admin.';
return false;
} else {
$("#notify").clearForm().clearFields().resetForm();
document.getElementById('result').innerHTML = 'Thank you for signing up with us.';
return false;
}
}
当我echo 'save_failed';
出现明显错误时,这可以解决问题,但是在die语句的情况下它不起作用,例如:
mysql_connect("host", "user", "pass") or die('save_failed');
我输入了错误的主机名,但JS功能没有收到'save_failed'
返回。
PHP脚本:
if (!(empty($_POST['name']) && empty($_POST['email'])))
{
//sanitizing inputs for MySQL insertion
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
//connecting to db
mysql_connect("host", "user", "pass") or die('save_failed');
mysql_select_db("table") or die('save_failed');
//inserting into table
mysql_query("INSERT INTO notify (name, email) VALUES('" . $name . "', '" . $email . "' ) ")
or die('save_failed');
}
else
{
echo 'save_failed';
}
答案 0 :(得分:3)
即使die("save_failed")
输出“save_failed”,它也不会阻止发送脚本中的任何先前输出。
确保如果您自己转到脚本,那么您在页面源中只收到“save_failed”且没有错误的字符
答案 1 :(得分:2)
我会提出另一种处理错误的策略。
浏览器尝试根据内容类型标头评估响应类型。如果您希望它显示简单文本
标题('Content-Type:text / plain');
适合我!如今大多数服务器都有足够的功率来使用这些更先进的方法。
答案 2 :(得分:0)
使用die将一些信息传递给页面并不是一个好主意。通常,响应字符串中会有其他数据。
更简单的方法是在您的JS代码中嵌入PHP代码。一个例子是这样的:
<script type="text/javascript">
data = "<?php echo('Save Failed'); ?>";
</script>