必须刷新或单击菜单两次才能执行AJAX?

时间:2013-07-17 18:50:16

标签: php jquery html ajax

所以我遇到了一个非常简单的问题,我似乎无法放在一起...我只是使用AJAX重新加载图像表,所以当用户选择一个选项时(在这种情况下是一个名字)它将重新加载图像框。到目前为止,它工作,它一直在工作,但唯一的问题是我需要做一个'硬'刷新或选择相同的选项两次。否则,它真的不会起作用。如果有人有解决方案,我会发布尽可能多的代码。谢谢!

jQuery的:

    $('select.hotelmain').on('change', function (e){
    var id = $(this).val();
    var dataString = 'id=' + id;
    e.preventDefault();
    alert('got here');
    $.ajax({
        type: "POST",
        url: "../ajax/ajax_images.php",
        data: dataString,
        cache: false,
        success: function (html) {
            $("ul.image-list").html(html);
        }
    });
    $('p.selectMessage').css('display','none');
    $('.inner-container').css('display','block');
    $('.display').css('height','0px');
    return false;
});

PHP:

<?php
session_start();
$hotelId = $_SESSION['curHotelId'];
$hotelDir = '../assets/php/upload/'.$hotelId.'/*';
$count = 1;
if ($hotelId) {
    foreach(glob($hotelDir) as $filename=>$hotelvalue){
        echo '<li id="del'.$count.'" class="image-list"><img src="'.$hotelvalue.'" width="50px" height="50px"/><p class="filename">' . basename($hotelvalue) . '</p> <a class="btn btn-mini btn-primary image-list" style="width: 18px;margin-top: -25px;border-radius: 100%;-moz-border-radius: 100%;-o-border-radius: 100%;-webkit-border-radius: 100%;" id="del'.$count.'" value="Delete"><i class="icon-remove-circle icon-2" style="margin-left:-3px;"></i></a></li>' . "\n" . "<br>";
        $count++;
    }
}else{}
?>

同样,任何事情都有帮助,我似乎无法让它做我想做的事。谢谢!

2 个答案:

答案 0 :(得分:1)

你需要做两次相同的选项,因为你有.on(改变)。由于它是相同的,它实际上不会改变。

编辑:而不是更改,请尝试直播

答案 1 :(得分:0)

看起来你正在从会话中获取hotleId而不是$ _POST vars 你什么时候设置$ _SESSION ['curHotelId']?