Javascript 将参数从php返回到ajax时出错
我正在开发一个网站,我使用ajax向用户显示一些消息,比如他是否在所有输入中插入了一些内容,我的数据库功能是否工作正常等等。但问题是,当我将字符串“empty”从php返回到ajax时,它工作正常,但当我返回字符串“success”时,我的ajax不工作,它只是将我重定向到我的php页面,并在屏幕上显示“success”。有什么不对劲 我的ajax代码:Javascript 将参数从php返回到ajax时出错,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在开发一个网站,我使用ajax向用户显示一些消息,比如他是否在所有输入中插入了一些内容,我的数据库功能是否工作正常等等。但问题是,当我将字符串“empty”从php返回到ajax时,它工作正常,但当我返回字符串“success”时,我的ajax不工作,它只是将我重定向到我的php页面,并在屏幕上显示“success”。有什么不对劲 我的ajax代码: <script> $(document).ready(function () { $("#btn-envi
<script>
$(document).ready(function () {
$("#btn-enviar").click(function () {
var action = $("#novo-artigo-form").attr("action");
var form_data = {
titulo: $("#titulo").val(),
imagem: $('#imagem')[0].files[0],
texto: $("#texto").val()
};
$.ajax({
type: "POST",
url: action,
data: form_data,
success: function (response) {
if (response == 'success') {
$("#mensagem-artigo-novo").removeClass("alert-danger alert-warning");
$("#mensagem-artigo-novo").addClass("alert alert-success");
$("#mensagem-artigo-novo").html("<p id='login-mensagem-sucesso'>Artigo adicionado!.</p>");
}
if (response == 'error') {
$("#mensagem-artigo-novo").removeClass("alert-success alert-warning");
$("#mensagem-artigo-novo").addClass("alert alert-danger");
$("#mensagem-artigo-novo").html("<p id='login-mensagem-erro'>Houve um erro ao adicionar no banco.</p>");
}
if(response == 'errors'){
$("#mensagem-artigo-novo").removeClass("alert-success alert-warning");
$("#mensagem-artigo-novo").addClass("alert alert-danger");
$("#mensagem-artigo-novo").html("<p id='login-mensagem-erro'>Houve um erro na imagem.</p>");
}
if(response == 'empty'){
$("#mensagem-artigo-novo").removeClass("alert-success alert-danger");
$("#mensagem-artigo-novo").addClass("alert alert-warning");
$("#mensagem-artigo-novo").html("<p id='login-mensagem-aviso'>Preencha todos os campos.</p>");
}
}
});
return false;
});
});
</script>
$(文档).ready(函数(){
$(“#btn enviar”)。单击(函数(){
var action=$(“novo artigo form”).attr(“action”);
变量形式_数据={
titulo:$(“#titulo”).val(),
imagem:$('#imagem')[0]。文件[0],
texto:$(“#texto”).val()
};
$.ajax({
类型:“POST”,
url:action,
数据:表格数据,
成功:功能(响应){
如果(响应=‘成功’){
$(“mensagem artigo novo”).removeClass(“警报-危险-警报-警告”);
$(“#mensagem artigo novo”).addClass(“警报成功”);
$(“#mensagem artigo novo”).html(artigo adicionado!。
”;
}
如果(响应=='error'){
$(“#mensagem artigo novo”).removeClass(“警报成功警报警告”);
美元(“#mensagem artigo novo”).addClass(“警惕危险”);
$(“#mensagem artigo novo”).html(Houve um erro ao adicionar no banco.
”);
}
如果(响应=‘错误’){
$(“#mensagem artigo novo”).removeClass(“警报成功警报警告”);
美元(“#mensagem artigo novo”).addClass(“警惕危险”);
$(“#mensagem artigo novo”).html(Houve um erro na imagem.
”;
}
如果(响应=='empty'){
$(“#mensagem artigo novo”).removeClass(“警报成功警报危险”);
$(“#mensagem artigo novo”).addClass(“警报警告”);
$(“#mensagem artigo novo”).html(预先设定了一个游戏时间。
”;
}
}
});
返回false;
});
});
我的php代码:
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/banco/banco.php';
$titulo = $_POST['titulo'];
$data = date('Y-m-d');
$texto = $_POST['texto'];
$nomeImagem = $_FILES['imagem']['name'];
$imagem = $_FILES['imagem']['tmp_name'];
$formato = strtolower(end(explode('.', $nomeImagem)));
$extensoes = array('.jpg', '.png');
if (empty($titulo) || empty($texto)) {
echo 'empty';
} else if (inserirPublicacao($conexao, $titulo, $data, $imagem, $texto) == 1) {
$id = ultimoId($conexao);
$caminhoBanco = '/imagens/publicacoes/' . $id . '.' . $formato;
$caminho = '../../imagens/publicacoes/' . $id . '.' . $formato;
if (alterarCaminho($conexao, $caminhoBanco, $id) == 1) {
if (move_uploaded_file($imagem, $caminho)) {
echo 'success';
} else {
echo 'errors';
}
}
} else {
echo 'error';
}
?>
因此,在我的php代码中,当我的titulo
和texto
为空时,它会在屏幕上显示一条消息,表示为空。但当一切正常时,我会被重定向到另一个屏幕,那就是我的php文件。。那怎么了?为什么只有我的“空”语句有效?
另一件奇怪的事情是,如果我将“成功”改为“空”,它也不起作用
注意:我所有的div id都是正确的,因此问题不存在。首先,使用事件提交,而不是单击。如果用户按“enter”,则不会触发事件,但表单为sendCheck spelling in.removeClass(“警报成功警报包装”)@r3步骤好,我将更改代码,但不会更改问题代码。谢谢你的提示@allu谢谢你,但这只是从哪里得到$conexao变量的细节,这个变量在php Inserirpublicaco方法中用作参数?