Gönderme JS (jQuery) üzerinden çalışan ama form ile değil

0 Cevap php

Ben oldukça kafa karıştırıcı bir sorun var.

Ben bir php dosyası var (http://example.com/delete.php)

<?php
session_start(); 
$user_id = $_SESSION['user_id'];
$logged_in_user = $_SESSION['username'];
require_once('../classes/config.php');
require_once('../classes/post.php');
$post = new Post(NULL,$_POST['short']);
#print_r($post);
try {
 if ($post->user_id == $user_id) {
  $pdo = new PDOConfig();     

   $sql = "DELETE FROM posts WHERE id=:id";

   $q = $pdo->prepare($sql);
   $q->execute(array(':id'=>$post->id));       

  $pdo = NULL;
 }
 else {throw new Exception('false');}
}       
catch (Exception $e) {
   echo 'false';
}
?>

ve ben buna veri göndermek için bu jquery almaya çalışırken, ve böylece verileri silmek ediyorum.

$('.post_delete').bind('click', function(event) {

    var num = $(this).data('short');

    var conf = confirm("Delete This post? (" + num + ")");

    if (conf == true) {
        var invalid = false;
        $.post("http://example.com/delete.php", {short: num},
        function(data){

            if (data == 'false') {
                alert('Deleting Failed!');
                invalid = true;
            }
        });

        if (invalid == false) { 
          alert("post Has Been Deleted!");
        } 
        else {
            event.preventDefault();
            return false;
        }


    } 
    else {
        event.preventDefault();
        return false;
    }



});

Ben bunu ne zaman ve, bu "Post silindi!" döndürür ancak mesajı silmez.

O tarafından karıştı, ben php test etmek için bir form yaptı.

<form action="http://example.com/delete.php" method="POST">
<input type="hidden" value="8" name="short"/>
<input type="submit" name="submit" value="submit"/>
</form>

hangi güzel çalışıyor. Çok garip.

Ben bir açıklama silme için hemen hemen aynı kodu var ve bu javascript büyük çalışır.

Herhangi bir fikir? Beni aşar.

Thanks in advance, Will

EDIT: this works... but doesn't follow the href at the end, which is the desired effect. Odd.

$('.post_delete').bind('click', function(event) {

    var num = $(this).data('short');

    var conf = confirm("Delete This Post? (http://lala.in/" + num + ")");

    if (conf == true) {
        var invalid = false;
        $.post("http://example.com/delete/post.php", {short: num},
        function(data){

            if (data == 'false') {
                alert('Deleting Failed!');
                invalid = true;
            }
        });

        if (invalid == false) { 
          alert("Post Has Been Deleted!");
        ******************************************
            event.preventDefault();
            return false;
        ******************************************
        } 
        else {
            event.preventDefault();
            return false;
        }


    } 
    else {
        event.preventDefault();
        return false;
    }



   });

0 Cevap