1

PHP を使い始めたばかりで、jQuery ajax を PHP に移行しようとしています。これが私のPHPファイルです:

<?php
include 'config.php';
include 'opendb.php';

$query = "SELECT * FROM agency ORDER BY name";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
$id = $row['id'];
$name = $row['name'];
echo "<li class=\"agency\"><a href=\"contentAgency.php?id=$id\">$name</a><ul class=\"agency-sub\"></ul></li>";
}

include 'closedb.php';
?>

これが私の現在のjs関数です:

//Add Agency content
$("ul.top-level").on("click", "li.agency a", function (event) {
    if($(this).next().length) {
        var numbs = $(this).attr("href").match(/id=([0-9]+)/)[1];
        showContentAgency(numbs, this);
    } else {
        $(this).closest('ul').find('a').removeClass('sub-active');
    }
    event.preventDefault();
});

そして、ここに showContentAgency(); があります。関数:

function showContentAgency(id, elem) {
    $.post("assets/includes/contentAgency.php?id=id", {
        id: id
    }, function (data) {
        $(elem).addClass("nav-active").parent().find("ul").html(data).show();
    });
}

私がやりたいのは、jQuery に挿入させるのではなく、PHP に順不同のリストをレンダリングさせることです。これは、上記の PHP ファイルで現在どのように取り上げられているかです。

echo "<li class=\"agency\"><a href=\"contentAgency.php?id=$id\">$name</a><ul class=\"agency-sub\"></ul></li>"

そのため、PHP にリストを入力してもらいたいと思い<ul class="agency-sub">ます。

4

4 に答える 4

0

あなたのコードの構造は私には少しわかりませんが、大まかな概要は次のとおりです。 contentAgency.php でコンテンツを生成している関数を取得し、それを呼び出して HTML を取得し、ビルド時にそれを内部に貼り付けます。リスト。

于 2012-06-06T18:15:04.147 に答える
0

あなたが正確に何を望んでいるのかはわかりませんが、「foreach」ループを探しているようです。結果セットからもののリストを作成したいときは、次のように簡単に使用できます。

<ul>
<? foreach($result as $object) ?>  
     <li><?=$object?></li>
<? endforeach; ?>
</ul>

foreach は for ループとして機能しますが、バックグラウンドですべてのロジックを実行します。お役に立てれば。

于 2012-06-06T19:51:41.790 に答える
0

PHP は、Jquery のようにページの DOM にアクセスできません。Php を使用して DOM にアクセスしたい場合は、Web ページ全体を解析する必要がありますが、これはおそらくやりたいことに対して非現実的です。PHP は、ブラウザーによってページが読み込まれる前にのみ、ページを変更できます。ページの読み込み後にコードを実行する場合は、javascript を使用する必要があります。

現在、ページのコードがどのように見えるかがわからないため、コードをさらに投稿していただければ、より多くの情報を提供できる可能性があります。

于 2012-06-06T17:55:31.080 に答える