2

ajax Web サイトの JSON を介して html php を出力しようとしています。

php:

$return = "<div id='content'><ul class='allitems'>";
while($row = mysql_fetch_array($result)){
    $return .= "<li class='items'>" . "<div class='itemheading'><div  class='controls'> <span class='votes'>" . $row['votes'] . "</span>";
    $return .= "<form class='actions' action='index.php' method='POST'><input type='hidden' name='id' value='{$row['id']}'/><input type='submit' class='button plus' value='+1' /></form>";
    $return .= "<form class='actions' action='index.php' method='POST'><input type='hidden' name='id-' value='{$row['id']}'/><input type='submit' class='button minus' value='-1' /></form>  ";
    $return .= "<form class='actions' action='index.php' method='POST'><input type='hidden' name='idDel' value='{$row['id']}'/><input type='submit' class='button delete' value='X' /></form>  ";
    $return .= "</div><span class='title'>" . $row['name'] . "</span></div><span class='infotext'>". $row['infotext'] ."</span></li>";
}
$return .= "</ul></div>";
echo json_encode($return);

このphpページにアクセスした場合の出力には\/、いたるところにスラッシュ( )があります。<\/span><\/form> <\/div>Make the app look all nice<\/span>通常のhtmlとして出力しません。

これは、putput を表示する ajaxpage のコードです。

    <script id="source" language="javascript" type="text/javascript">

  $(function () {
    $.ajax({url: 'retrieve.php', dataType: 'json'}).done(function(data) {


            var html = data[3];

            $('#output')
                .append("<b>id: </b>"+html)


    });
});
  </script>

<これに関する問題は、いつvar html = rows[0]; dいつ[1]ectを出力するかということです。一度に 1 文字のみを表示します。

すべての html を一度に実際の html コードとして表示するにはどうすればよいですか?

4

2 に答える 2

1

JSONは配列のような方法で物事を返します(私もそれが新しいので、正確にはわかりません)ので、すべてのhtmlを配列内の1つのオブジェクトにする必要があります。以下では、連想配列で「html」を使用して参照されるように設定しています。

PHPページで、これecho json_encode($return);をこれに 変更しますecho json_encode(array('html' => $return));

ajax ページでは、少しだけ変更する必要があります。

交換:

var html = data[3];

                $('#output')
                    .append("<b>id: </b>"+html)

と:

var html = data['html'];

            $('#content')
                .append(html)

または、よりきれいにするために、html の変数を作成する必要さえありません。JSON 配列から直接取得できます。

        $('#content')
            .append(data['html'])
于 2012-07-16T12:44:04.160 に答える
0

これには JSON を使用する必要はありません。jQuery で .load() を使用して、HTML フラグメントを要素に直接ロードするだけです。

$("#output").load("retrieve.php");
于 2012-07-16T13:05:14.307 に答える