2016-11-12 94 views
0

我有一個通過ajax從數據庫中提取的電話號碼字段,我想要做的是在信息旁邊添加一個刪除按鈕這裏是我迄今爲止似乎是這樣的應該工作,但事實並非如此。我也使用bootstrap。Ajax jQuery MySql刪除字段

HTML代碼:

<input type="hidden" value="<?php echo _e($_SESSION['id']); ?>" id="userid"> 
<div class="row"> 
    <div class="col-md-4"> 
     <p>',_e($r->label),'</p> 
    </div> 
    <div class="col-md-6"> 
     <p>',_e($r->phone),'</p> 
    </div> 
    <div class="col-md-2"> 
     <a class="delPhone" rel="',_e($r->id),'" href="#"> 
      Delete Number 
     </a> 
    </div> 
</div> 

Ajax代碼

$('.delPhone').on('click', function() { 
    $id = $('#userid').val(); 
    $.ajax({ 
     type: 'POST', 
     url: "functions.php", 
     data: {"userid":$id, "phoneid": $(this).attr('rel')}, 
     success: function(data) { 
      console.log(data); 
     } 
    });  
}); 

PHP代碼

if(isset($_POST['phoneid']) === true && isset($_POST['userid']) === true) { 
    if(empty($_POST['phoneid']) === false && empty($_POST['userid']) === false) { 
     $phoneid = $_POST['phoneid']; 
     $userid  = $_POST['userid']; 
     require_once 'connect.php'; 
     $sql = "DELETE FROM numbers WHERE userid=:userid AND id=:phoneid"; 
     $query = $handler->prepare($sql); 
     $query->execute(array(
      ':userid' => $userid, 
      ':phoneid' => $phoneid 
     )); 
    } 
} 
+0

註釋掉'location.reload()',看看你會得到什麼消息,從PHP回?此外,除非PHP文件返回HTTP頭錯誤,否則您的'error:'函數將永遠不會觸發。你也可以嘗試在PHP文件中運行'var_dump($ _ POST)',並檢查你的數據。只要放一個'console.log(data);'而不是'location.reload();' – junkfoodjunkie

+0

你有什麼錯誤嗎?你在_inspector_中看到了什麼? – EhsanT

+0

這裏「不工作」是什麼意思? – halfer

回答

0

解決方案:

的問題是日在你沒有在你的AJAX中指定$ id的值,這就是爲什麼PHP不知道要刪除什麼。

錯誤消息:未捕獲的ReferenceError:$ ID沒有被定義

+0

對不起,我沒有在事實上添加一個$ id的選項在js文件中,我不好,我會修改一些東西,看它是否有效。 – theWebKeyGuy

+0

@theWebKeyGuy你可以至少投我的答案:)? – HenryDev