0

免責事項:これは割り当て用です。私は明示的なコードを求めていません。手元のタスクを理解し、関連する部分を学ぶことができるように、十分な情報だけが必要です。

フォームから名前と写真を受け取り、両方をデータベースに入れて、データベース内のすべての名前をフォームの下に表示する必要がある割り当てに取り組んでいます。名前はクリック可能であると想定されており、クリックすると、名前の下のdivにそれぞれの画像が表示されます。

名前と画像をデータベースに保存するのに十分な距離になりました(画像をデータベースに保存するのは悪いことですが、それは割り当ての一部です)。最後に終了する必要があるのは、リンクと画像の表示です。

私は、かなり無謀な方法で、それぞれの名前に独自のdivを付けることにしました。

for ($i = 0; $i < $nrows; $i++) {
    $name = htmlspecialchars(mysql_result($results, $i, "first_name")). " " .htmlspecialchars(mysql_result($results, $i, "last_name"));
    echo "<div id='".$name."'>";
    echo $name;
    echo "</div>";
}

したがって、これはテーブルのように機能しますが、各divに一意のIDがあります(これは数値IDに変更できますが、人の名前です)。その一意のIDですが、ループの範囲内で行うべきか、それとも外部で行うべきかはわかりません...

さらに、特定の名前の画像を選択するためにそのオンクリック機能を設定する方法が正確にはわかりません。各画像はLONG​​BLOBとして保存されるため、表示する前に画像形式にエンコードする必要があります。base64_encodeがこれで機能するはずですが、頭の中でまとめることができないようです。

私のコードがもっと必要な場合はお知らせください。喜んで提供させていただきます。それ以外の場合は、あなたの時間とあなたの援助に感謝します。

編集#1(11:44 am、2/18/13):

$('#$name').click(function() {
    $("#image-div").html("<img src='data:image/jpeg;base64,'.base64_encode(mysql_result($results, $i, 'photo')).'>");
});
4

2 に答える 2

1
  1. div にクラスを指定するjQuery.onと、クラス セレクターを介してクリック ハンドラーを割り当てることができます。
  2. 画像を取得するには、適切な content-type ヘッダーを使用して画像をクライアントにプッシュするコントローラーを作成する必要があります。これにより、画像タグは次のようになります。<img src="image.php?name=theimagename" />

更新

IDをjsに直接入れたくない...ハンドラから取得できるある種の属性を使用したい。例えば:

<div id="theimagename" data-image-id="1">
</div>

次に、ハンドラー内から値を取得して、data-image-idそれを php に送信できます。

于 2013-02-18T19:47:35.570 に答える
0

のそれぞれについて、次のようなハンドラ<div id="name">も追加します。onclick

<div onclick="getImage(this.id)" id="name">

次に、getImage()関数は次のようになります。

function getImage(name){
  console.log(id)
  //Now you have the name of the image you need
}
于 2013-02-18T19:49:15.540 に答える