ajaxを使用してデータベースに挿入しようとしています。表はphpファイルで更新するのですが、いつもajaxでエラーが出て結果ページにリダイレクトできませんでした。
HTMLページの私の「POST」関数は次のとおりです(常にエラーアラートを返します):
function enviaFormDetalhes() {
if (confirm("Tem a certeza que quer gravar os dados?")){
$.ajax( {
type: 'post',
url: 'php/f_propostas.php?tipo_acao=grava_nova_proposta&id_consulta='+getUrlVars()['id_consulta']+'&id_fornecedor='+getUrlVars()['id_fornecedor'],
data: $("#form_detalhes_proposta").serialize(),
success: function(data) {
alert("Dados gravados com sucesso");
location.href = 'f_editproposal.html?id_proposta='+data;
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
} );
} else {
return false;
}
}
PHP ファイルの一部は次のとおりです: (これはうまく機能しています。ブラウザで i を直接呼び出すと、lastinsertID が返されます):
case "grava_nova_proposta":
$ID_Fornecedor = $_GET['id_fornecedor'];
$ID_Consulta = $_GET['id_consulta'];
$DataRececao = $_POST['dt_proposta'];
$RefProposta = $_POST['ref_proposta'];
$DtValidade = $_POST['dt_validade'];
$DtCriacao_loop = gmdate('Y-m-d');
try {
$sql = "INSERT INTO fornecedores_propostas (
id_fornecedor,
id_contacto,
id_consultaloop,
datarecepcao,
ref_proposta,
validadeproposta)
VALUES (?, ?, ?, ?, ?, ?)";
$q = $conn->prepare($sql);
$q->execute(array($ID_Fornecedor, $ID_Contacto, $ID_ConsultaLoop, $DataRececao, $RefProposta, $DtValidade));
$Ultimo_ID = $conn->lastInsertId('id_proposta');
echo $Ultimo_ID;
break;