1

理由はわかりませんが、パラメーター ID に基づく特定のデータで load() 関数を完了するために、jQuery が PHP にパラメーターを渡していません。

短期的には、ユーザーがリンクをクリックすると、起動する onclick がありますphoto_tab('.$row['id'].');

account.php HTML 要素

<li><a href="#!/photos" onclick="photo_tab('.$row['id'].');"><i class="icon-camera"></i> Photos</a></li>

ある意味では、ID は photo_tab に渡す必要があります (スクリプトはページ自体ではなくページに含まれます)。

general.js

function photo_tab(user_id) {
    $('.ac-content').load('ajax/photos.php',{user_id:id});
} 

また、php ページである photos/ ページをロードし、user_id 値に基づいて、その user_id に関連付けられたデータベースから写真をロードする必要があります。

<?php
   if ($_GET['user_id'] == 2) {
      echo "WORKED!";
   } else {
      echo "FAILED!";
   } 

***this is the photos/ file located at ajax/photos.php with mod_rewrite to point
otherwise to just photos/ or photos

編集: 1 - 写真を書き換える代わりにフル パスを使用する > ajax/photos.php は機能しません 2 - ID が渡され、$row['ID'] を介してページにエコーされます。3 - ajax/photos.php は $_REQUEST を使用しています

4

4 に答える 4

1

次のように、データをクエリ文字列として渡してみてください。

function photo_tab(user_id) {
    $('.ac-content').load('photos/','user_id='+id);
} 

編集: これをもう一度見てみると、そのURLは正しいですか?相対URLがあるのは奇妙に思えます。

また、生成されたマークアップが正しいことを確認する必要があります。行IDがソースに出力されていますか?

編集2: 私はこれをローカルに設定しました。これは動作するコードであり、ファイル構造を模倣しています。

//localhost/account.php

<html>
<head>
    <script src="http://code.jquery.com/jquery.min.js"></script>
    <script>
        function photo_tab(id) {
            $('.ac-content').load(
                'ajax/photos.php',
                { 'user_id': id }
            );
        }
    </script>
</head>
<body>
    <div class="ac-content"></div>
    <a href="#!/photos" onclick="photo_tab(3);"><i class="icon-camera"></i> Photos</a>
</body>

//localhost/ajax/photos.php

<?php
if (isset($_GET['user_id']) && $_GET['user_id'] == 2)
{
    echo "WORKED!";
}
else
{
    echo "FAILED!";
}
于 2013-01-26T04:47:37.690 に答える
1

変数を引用符で囲むのはどうですか?

function photo_tab(id)
{
    $('.ac-content').load('photos/',{'user_id':id});
} 
于 2013-01-26T04:48:20.023 に答える
1

はい、パラメータは想定どおりに渡されるべきではありません。名前はメソッドがサーバーからデータをロードし、返されたHTMLを一致した要素に配置することを意図しているためです。

.load( url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ] )

EG:上記と同じですが、追加のパラメーターをサーバーにPOSTし、サーバーが応答を終了したときに実行されるコールバックを送信します。

$(".ac-content").load("photos.php", {user_id:user_id}, function(){
  alert("have been loaded");
});

上記の構文を試してください。

  1. $_REQUEST代わりに試してください$_GET
  2. すべきphotos.phpか、いくつかの.phpではないphotos/
  3. idnullでないことを確認してください。
于 2013-01-26T04:51:04.013 に答える
0

id定義されていないようです。これを試して:

function photo_tab(id) {
  $('.ac-content').load('photos/',{user_id:id});
} 
于 2013-01-26T04:42:22.973 に答える