Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou querendo inserir múltiplos valores na tabela para cada quantidade de parcela informada. Está tudo certo, funcionando, porém.. preciso que a cada loop a data de vencimento tenha o mês somado. O que também está funcionando e inserindo na tabela... Porém, a mensagem de sucesso não está retornando pois provavelmente algum erro está acontecendo.
A mensagem aparece quando eu removo a linha que incrementa a data de vencimento.
$due_date = date("Y-m-d",(strtotime('next month',strtotime(date($due_date)))));
O código:
$response["status"] = "";
$response["html"] = "";
// Se não houver nenhum erro
if (!isset($error)) {
// Redefinindo valor da variável $pago
$pago = (!empty($pago)) ? "Sim" : "Não";
$sql = "INSERT INTO despesas (valor_despesa, data_vencimento, pago, data_pagamento, importante, tipo_repeticao, parcelas, observacoes, id_usuario, id_tipo_despesa, id_tipo_pagamento) VALUES ";
$insertQuery = array();
$insertData = array();
$n = 0;
while ($n < $parcelas) {
$data_vencimento = $data_vencimento;
$insertQuery[] = "(:valor_despesa".$n.", :data_vencimento".$n.", :pago".$n.", :data_pagamento".$n.", :importante".$n.", :tipo_repeticao".$n.", :parcelas".$n.", :observacoes".$n.", :id_usuario".$n.", :id_tipo_despesa".$n.", :id_tipo_pagamento".$n.")";
$insertData[":valor_despesa".$n] = $valor_despesa;
$insertData[":data_vencimento".$n] = $data_vencimento;
$insertData[":pago".$n] = $pago;
$insertData[":data_pagamento".$n] = $data_pagamento;
$insertData[":importante".$n] = $importante;
$insertData[":tipo_repeticao".$n] = $tipo_repeticao;
$insertData[":parcelas".$n] = $parcelas;
$insertData[":observacoes".$n] = $observacoes;
$insertData[":id_usuario".$n] = $id_logado;
$insertData[":id_tipo_despesa".$n] = $id_tipo_despesa;
$insertData[":id_tipo_pagamento".$n] = $id_tipo_pagamento;
$data_vencimento = date("Y-m-d",(strtotime('next month',strtotime(date($data_vencimento)))));
$n++;
}
try {
$pdo = abrirConexao();
if (!empty($insertQuery)) {
$sql .= implode(", ", $insertQuery);
$inserir = $pdo->prepare($sql);
$inserir->execute($insertData);
if($inserir) {
// Mensagem de sucesso
$response["html"] = "A despesa foi cadastrada com sucesso!";
}
$response["status"] = "success";
}
// Fechar conexão
$pdo = null;
} catch (PDOException $e) {
// Mensagem de erro
}
} else {
foreach($error as $erro) {
$response["html"] .= $erro . "<br>";
}
$response["status"] = "error";
}
echo json_encode($response);
Eu preciso que o mês seja incrementado para algo que estou necessitando. O mês está incrementando, está sendo inserido na tabela, porém, a mensagem de sucesso só aparece quando removo a linha que incrementa.
O código ajax do form:
submitHandler: function (form) {
$("#atualizar_dados").attr("disabled", true);
var parametros = $(form).serialize();
var modalAjax = $("#modalAjaxMessage");
$.ajax({
type: "POST",
url: "ajax/cadastrar-despesa.php",
dataType: "json",
data: parametros,
beforeSend: function(objeto){
modalAjax.find(".modal-body").html("Carregando...");
},
success: function(dados){
modalAjax.modal("show").find(".modal-body").html(dados.html);
setTimeout(function() {
modalAjax.modal("hide");
}, 2500);
if (dados.status == "success") {
limpar_validacoes_form(form);
}
$("#atualizar_dados").attr("disabled", false);
}
});
return false;
}Carregando comentários...