JQuery скрыть Div не работает в случае успеха перезвонить - PullRequest
0 голосов
/ 05 сентября 2011

Я надеялся, что кто-то может указать, почему мой div (в моем случае я использую li) не скрывает использование jquery при успешном выполнении моего php-скрипта.

Вот мой код запроса (из плагина jquery impromptu):

if(v){
    var bid = f.bannerid;
    $.post('/manage/<?=CFILE?>',{bannerid:f.bannerid,action:'deleteBanner',cid:<?=$contentid?>,uid:'<?=$_SESSION['userid']?>'},{callback:function(data){
        if(data=='true'){
            $('#list_'+bid).hide('slow', function(){ $(this).remove(); });                                  
        }else{ 
            $.prompt('An Error Occured while removing this banner'); 
        }                           
    }});
} 

вот часть моего HTML-кода:

<li id="list_47">
<div>
    <div id="row">
        <div class="title id="bannerid59"><img src="banner_45_10.jpg" /></div>
        <div class="action"><a href="javascript:;" title="Delete Banner" class="deleteBanner" onclick="deleteBanner(59);">Delete</a></div>
    </div>
    <div id="row-right">
        <span class="small">Sort Order: 2</span><br>
    </div>
</div>
</li>
<li id="list_48">
<div>
    <div id="row">
        <div class="title id="bannerid60"><img src="banner_45_11.jpg" /></div>
        <div class="action"><a href="javascript:;" title="Delete Banner" class="deleteBanner" onclick="deleteBanner(60);">Delete</a></div>
    </div>
    <div id="row-right">
        <span class="small">Sort Order: 3</span><br>
    </div>
</div>
</li>

Наконец, вот мой простой php-код:

if(isset($_POST['action']) && $_POST['action']=="deleteBanner"){
    mysql_query("DELETE FROM banner where banner_image='".$_POST['bid']."' AND users_id='".$_POST['uid']."'") or die(mysql_error());
    print "true";
    exit;
}

Я могу без проблем удалить свой баннер из базы данных mySQL, используя эти коды, но я не могу скрыть удаленный li (например, list_47) при выполнении скрипта.

Любая помощь приветствуется. спасибо.

1 Ответ

0 голосов
/ 05 сентября 2011

Вы не правильно звоните $.post, ваш {callback: function() ... } должен быть просто функцией:

$.post(
    '/manage/<?=CFILE?>',
    {bannerid:f.bannerid,action:'deleteBanner',cid:<?=$contentid?>,uid:'<?=$_SESSION['userid']?>'},
    function(data) {
        // ...
    }
);

$.post будет искать функцию в списке аргументов, но не найдет ее; поскольку функция обратного вызова не передана, обратный вызов не будет вызван, и ваш <div> не будет скрыт.

Сравните эти два:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...