2011-07-10 112 views
0

編輯以便於理解。jQuery AJAX不會將值傳遞給AJAX調用

好的,所以問題是jQuery不會將值傳遞給某個PHP文件,以便運行DELETE查詢並刪除請求從數據庫中刪除的內容。

這個腳本與另外一個請求來自MySQL的信息並通過AJAX調用加載到php文件的文件很好地協作。

的問題可能是這個腳本的實際AJAX

$(".removeNote").live('click',function() { 
     $("#qpbox-content").show(); 
     $("#qpbox-overlay").show(); 
     $("#qpbox-loader").html("<img src='http://www.ajaxload.info/images/exemples/4.gif' />"); 

     var xhr = $.ajax({ 
     type: "GET", 
     url: "_class/delete_notes.php", 
     data: "ajax=1&nid=" + this.parentNode.id, 
     success: function(html){ 
      $("#qpbox-utm").html(html); 
      $("#qpbox-loader").html(""); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) {$("#qpbox-loader").html(errorThrown);} 
     }); 
    }); 

這是從上面的代碼應該得到

<p style="margin-bottom:3px;" id="$nid"> 
     <div id="$nid" style="float: right; padding: 4px;cursor: pointer;" class="removeNote"> 
     <img src="$icon_sys_delete" alt="remove note" title="remove note"/> 
     </div> 
     </p> 

值記爲$ NID

值的那部分

這是實際刪除部分

<?php 

include '../object/db.class.php'; 

if($_GET['ajax'] == '1') { 

$nid = $_GET['nid']; 

$query = mysql_query("DELETE FROM notes WHERE nid = '$nid'"); 
echo "Note removed!"; 

} 

?> 

所以這就是它...

+0

從太多的上下文/代碼中篩選出你的問題會讓其他人更容易/願意給你一個答案。 –

+0

這是被迴應或是純HTML嗎?

espradley

+0

@espradley它被回顯爲PHP $ entry_display。= <<< ENTRY_DISPLAY –

回答

0

嘗試改變

data: "ajax=1&nid=" + this.parentNode.id, 

data: "ajax=1&nid=" + jQuery(this).closest('div').attr('id') 

伊夫假定「格」就是你正在尋找獲得「身份證」的一個值。

你的代碼片段的問題是你有混合JQuery與原始的JavaScript。如果你想要做你的方式(不使用jQuery來獲取值),可以使用

data: "ajax=1&nid=" + this[0].parentNode.id, 
+0

是它的值必須通過的div我嘗試了你的建議方法jQuery(this).closest('div')。attr('id' ),仍然沒有運氣,註釋已被刪除,但它仍然在MySQL中的PHP回聲 –

+0

在這種情況下,'this'不是jQuery包裹的元素。 –

+0

發現它不是jQuery的問題,jQuery是120%正確的。現在問題是在MySQL查詢中修復的 –

0

的問題是,<p>不含<div>。因此,.removeNoteparentNode不是p標籤。此外,id屬性應該是唯一的。我會從p刪除nid,並簡單地使用this.id