Как получить данные после нажатия на текст с помощью AJAX jquery? - PullRequest
0 голосов
/ 21 марта 2012

Я использовал этот код для отправки и возврата результата.

<script type="text/javascript"> 
    $(document).ready(function() {
        $('.special').click(function(){
            var info = $(this).attr("rel");
            //$(this).html(sku);
            $.ajax({
                 type: "POST",
                 url:"../ajax/addSpecialFlag.php", 
                 async: false,
                 data: {info:info},
                success:function(result){
                    $(this).html(result);
                }});       
        }); 
    });    
</script>

<b style="cursor: pointer" class="special"  rel="<?=$v['number']."/*".$v['vid']; ?>">Special</b>

addSpecialFlag.php

<?php
echo $_POST['info'];
?>

Этот код должен возвращать "Info" в "<-b class = 'special' -> "но результата нет.В чем проблема ?Заранее спасибо !

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Проблема должна заключаться в том, что $(this) внутри вашего обработчика success отличается от внешнего обработчика. Это должно решить вашу проблему:

$(document).ready(function() {
    $('.special').click(function(){
        var $this = $(this);
        var info = $this.attr("rel");
        $.ajax({
             type: "POST",
             url:"../ajax/addSpecialFlag.php", 
             async: false,
             data: {info:info},
             success:function(result){
                $this.html(result);
            }});       
    }); 
});    
0 голосов
/ 21 марта 2012

<b>?Ты с ума сошел?Пожалуйста, используйте <strong>.

Я привел в порядок ваш код, чтобы парантез соответствовал их отступам строки и скорректировал ваш обработчик успеха.Проблема заключалась в том, что обработчик успеха находится в области действия, отличной от области действия функции щелчка, поэтому вам нужно было ссылаться на нее другим способом, то есть назначая его другой переменной.

$(document).ready(function () {
    $('.special').click(function () {
        var info = $(this).attr("rel");
        var _this = $(this);
        //$(this).html(sku);
        $.ajax({
            type: "POST",
            url: "../ajax/addSpecialFlag.php",
            async: false,
            data: {
                info: info
            },
            success: function (result) {
                _this.html(result);
            }
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...