JQuery AJAX не передает значения в вызов AJAX - PullRequest
0 голосов
/ 10 июля 2011

Отредактировано для облегчения понимания.

Хорошо, проблема в том, что 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!";

}

?>

Так вот и все ...

Ответы [ 2 ]

0 голосов
/ 10 июля 2011

Проблема в том, что <p> не содержит <div>.Таким образом, parentNode из .removeNote не является тегом p.Также атрибут id должен быть уникальным.Я бы удалил nid из p и просто использовал бы this.id.

0 голосов
/ 10 июля 2011

Попробуйте изменить

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

до

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

Я предположил, что "div" - это то, что вы ищете, чтобы получить значение "id".

Проблема с вашим фрагментом кода в том, что вы смешали JQuery с необработанным javascript. Если вы хотите сделать это по-своему (без использования jquery для получения значения), вы можете использовать

 data: "ajax=1&nid=" + this[0].parentNode.id,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...