0

このコードの問題は何ですか?ページを更新せずにajaxによるメニューとページの変更ですが、機能していません。私のajaxコードです

<script>
        $(document).ready(function() {
            $('.news').click(function give(id){
                $('#main-unit').text('Please Wait...');
                    var place= id;
                    $.ajax({
                        url:'pages/news.php',
                        type:'POST',
                        data:'where='+place,
                        statusCode:{
                            success: function(data){
                                $('#main-unit').html(data);
                            }
                        }
                    });
            });
        });
    </script>

これは私のhtmlタグです

<ul>
   <li><a class="news" onclick=\"give('news')\" href="#">news</a></li>
</ul>

およびphpコード

mysql_connect("localhost", "root", "")
    or die(mysql_error()); 
    mysql_select_db("basi")
    or die(mysql_error()); 
    if($_POST['where']=='news'){
        $result = mysql_query("SELECT * FROM contents WHERE type = 0");
        while ($row = mysql_fetch_array($result)){
            $title = $row['title'];
            $text = $row['text'];
            echo"
            <div class='title'><span>$title</span></div>
            <div class='content'>
            $text
            </div>
            ";
        }
    }

DB から読み取った情報は、html ファイルには返されません。

4

2 に答える 2

1

問題は JavaScript にあります。ドキュメントの準備が整うのを待っていて、(誤って) 使用されていないクリック イベント リスナーをバインドしています! 試す:

<a class="news" onclick="give('news')" href="#">news</a>

JavaScript で:

<script>
    function give(id) {
        $('#main-unit').text('Please Wait...');
        var place = id;
        $.ajax({
            url:'pages/news.php',
            type:'POST',
            data:'where='+place,
            statusCode:{
                success: function(data){
                    $('#main-unit').html(data);
                }
            }
        });
    }
</script>

より良い解決策は、HTML を JavaScript から分離することです。メニュー リンクから onclick 属性を削除し、純粋な jQuery を使用してそれを選択し、クリックされたときに Give() を呼び出すイベントをバインドします。

$(document).ready(function() {
    $('.news').click(function(e) {
        give('news');
    });
});
于 2013-09-11T18:12:23.523 に答える
0

FTFY

<script>
        $(document).ready(function() {
            $('.news').click(function give(id){
                $('#main-unit').text('Please Wait...');
                    var place= id;
                    $.ajax({
                        url:'pages/news.php',
                        type:'POST',
                        data:'where='+place,
                        //I believe your mistake was here
                        success: function(data){
                                $('#main-unit').html(data);
                         }
                    });
            });
        });
    </script>
于 2013-09-11T17:51:24.560 に答える