$ ajax отправляется, но отсутствует значение - PullRequest
0 голосов
/ 12 мая 2011

Хорошо, мой скрипт пытается запросить у php результаты из mysql и загрузить их в div.Результаты основаны на значении nid, которое должно быть отправлено. Это значение извлекается из id = "record- #", запись удаляется, а # остается для использования ajax в качестве идентификатора для nid.

здесь есть функция данных ajax

    $(document).ready(function() {

   $(".note").live('click',function() {
      $("#note_utm_con").show();
      $("#note_utm_nt").html("<img src='http://www.ajaxload.info/images/exemples/4.gif' />");

      $.ajax({
         type: "GET",
         url: "_class/view.php",
         data: "ajax=1&nid=" + parent.attr('id'),
         success: function(html){
            $("#note_utm").html(html);
            $("#note_utm_nt").html("");
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {$("#note_utm_nt").html(errorThrown);}
      });
   });

   $("#note_utm_con_cls").click(function() {
     $("#note_utm_con").hide();
    });
});

, а вот остальная часть страницы

       <div id="note_utm_con" style="display: none;">
<button id="note_utm_con_cls" style="width: 20px;float: right; padding: 2px;clear: both;">X</button>
<div id="note_utm"></div>
<div id="note_utm_nt"></div>
</div>

<?php

class notes {

     var $host;
     var $username;
     var $password;
     var $table;

     public function display_notes() {

         $q = "SELECT * FROM `notice` ORDER BY nid ASC LIMIT 12";
         $r = mysql_query($q);


         if ( $r !== false && mysql_num_rows($r) > 0 ) {
         while ( $a = mysql_fetch_assoc($r) ) {

             $nid = stripslashes($a['nid']);
             $note = stripslashes($a['note']);
             $type = stripslashes($a['type']);
             $private = stripslashes($a['private']);
             $date = stripslashes($a['date']);
             $author = stripslashes($a['author']);

             if($type == 1) { 
             $type = "posted a comment."; $icon = "http://cdn1.iconfinder.com/data/icons/Basic_set2_Png/16/megaphone.png"; 
             } elseif($type == 2) { 
             $type = "raised a support ticket."; $icon = "http://cdn1.iconfinder.com/data/icons/basicset/help_16.png";
             } elseif($type == 3) {
             $type = "added new photo."; $icon = "http://cdn1.iconfinder.com/data/icons/Basic_set2_Png/16/photo.png";
             } elseif($type == 4) {
             $type = "updated profile details."; $icon = "http://cdn1.iconfinder.com/data/icons/Basic_set2_Png/16/user_info.png";
             } else { }

             $entry_display .= <<<ENTRY_DISPLAY
             <ul class="list">
             <li id="$nid">
             <a href="javascript:;" id="$nid" onClick="retun false;" class="note">
             <img src="$icon" /> 
             $author, 
             $type           
             </a>
             </li>
             </ul>
ENTRY_DISPLAY;

            }

        } else {

            $entry_display = <<<ENTRY_DISPLAY
             <ul class="list">
             <li> 
             <p>
             <img src="http://cdn1.iconfinder.com/data/icons/basicset/monitor_16.png" /> 
             Nothing to display
             </p>
             </li>
             </ul>
ENTRY_DISPLAY;
    }

    return $entry_display;
    }

      public function connect() {
      mysql_connect($this->host,$this->username,$this->password) or die("Could not connect. " . mysql_error());
      mysql_select_db($this->table) or die("Could not select database. " . mysql_error());

      return $this;
      }

      private function note_type() {

             if($type == 1) { $type = "posted a comment!"; } elseif($type == 2) { $type = "raised a support ticket!"; } else { }
             return $type;
      }

}


?>

, поэтому при щелчке по LI с class = "note" запускается вызов AJAX,Затем вызов использует идентификатор в href для извлечения $ nid из id = "record-

В моем случае кажется, что AJAX отправляет запрос, так как view.php возвращает поля, в которых должны быть данныено, похоже, он не передает столь необходимый nid, поэтому PHP может выбрать правильный nid из MySQL для использования.

Может кто-нибудь сказать мне, что с ним не так и как это можно исправить, чтобы получить идентификатор? enter code here

Ответы [ 2 ]

3 голосов
/ 12 мая 2011

Ваши кавычки неверны. Попробуйте это:

data: "ajax=1&nid=" + parent.attr('id').replace('record-',''),

Изменить: Если вы еще не опубликовали полный код, вы фактически нигде не установите parent. Это означает, что вы будете использовать объект window.parent, который, к удивлению, не имеет id. Вы должны использовать this.parentNode.id вместо:

data: "ajax=1&nid=" + this.parentNode.id,
2 голосов
/ 12 мая 2011

Из того, что вы написали, выглядит так, как будто вы передаете parent.attr ("id") вызов замещения в виде строки вместо извлечения переменной:

data: "ajax=1&nid=" + parent.attr('id').replace('record-',''),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...