IRONLORD Posted July 17, 2012 at 12:34 AM Report Share #468971 Posted July 17, 2012 at 12:34 AM Boa noite, Ao inserir/actualizar os dados de uma BD, quero mostrar uma mensagem de sucesso, e optei pelo JQuery$.post. O problema é que recebo a mensagem de sucesso, mas nada é alterado na BD, nem sequer o código PHP chega a correr. edit_announ.php <h4>Alterar código do anúnio:</h4> <form id="formboard" name="formboard" method='post' action=""> <textarea name="textareaannoun" id="textareaannoun"><?php echo $announc[0][0]; ?> </textarea> <div class="submit-button"> </br> <input type="submit" name="inserir" id="inserir" value="Alterar" /> <a href="main.php"><input type="button" name="voltar" value="Voltar" /></a> </div> </form> <?php if (isset($_POST['inserir'])) { $textareaannoun = $_POST['textareaannoun']; $changes = $announc[0][1] + 1; editAnnounc($textareaannoun); } printf('</div></div>'); ?> O JS. $(document).ready(function(){ $('#inserir').click(function() { dataString = $("#formboard").serialize(); $.ajax({ type : 'post', //url : 'edit_announ.php', url : 'connection/model.php', //dataType : "html", data: dataString, success : function(){ $('#formboard').html("<div id='message'></div>") $('#message').html("<div id='accept' align='center'><h2><img id='checkmark' src='images/successM.png' /> Alterado com sucesso!</h2></div>"); }, error : function(XMLHttpRequest, textStatus, errorThrown) { $('#formboard').html("<div id='message'></div>") $('#message').html("<div id='error' align='center'><h2><img id='checkmark' src='images/errorM.png' /> Erro ao modificar o anúncio global!</h2></div>"); } }); return false; }); }); E o model.php onde tenho as funções todas: function editAnnounc($textareaannoun) { global $conn; $query = "UPDATE announcement SET textCode='$textareaannoun' WHERE id=1"; $result = $conn->query($query); //affected_rows -> vai contar o numero de linhas afectadas $sucess = $conn->affected_rows; if ($sucess == 1) { return(true); //echo json_encode($return); //$_SESSION['dados']="<div id='accept' align='center'><img src='../images/s_success.png' width='16' height='16' /><b>Alteração efectuada com sucesso!</b></div>"; //echo $dados; } else { return(false); echo "Não foi nada alterado"; } //echo '<META HTTP-EQUIV=Refresh CONTENT="1"> '; //$result->close(); } Agradecia imenso uma pequena ajuda : ) Link to comment Share on other sites More sharing options...
yoda Posted July 17, 2012 at 01:32 AM Report Share #468972 Posted July 17, 2012 at 01:32 AM Usa o Firebug / Chrome Inspector para ver o que acontece quando o $.post é chamado. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted July 17, 2012 at 06:10 AM Report Share #468974 Posted July 17, 2012 at 06:10 AM (edited) 1º - tens o código de atualização dentro de uma função : estás a chama-la ??? 2º - o "success" do $.post é sempre executado desde que o pedido seja efetuado sem erros (não tem nada haver com o que acontece internamente no script chamado) 3º - deverás usar algum modo de sinalização na resposta do $.post para determinar se a inserção fio corretamente efetuada ou não, eu aconselho o uso de JSON ps : vi agora que estás a chamar o ajax para o mesmo script do formulário, no entanto (como muita gente gosta de fazer e erradamente) tens a normal salgalhada de HTML e PHP no mesmo ficheiro. se não efetuares a verificação do pedido ajax no início do ficheiro e forcares o script a terminar no fim do processo de atualização da base de dados terás sempre HTML na resposta do pedido ... Edited July 17, 2012 at 06:13 AM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now