ajax リクエストと、それが入力タイプの画像をどのように処理するかについて質問があります。私はすべての画像のリストを特定の . リストは画面の下部に表示されます。つまり、選択したすべての画像が画面の下部のボックスに表示されます。コンセプトは、「画像」タイプの入力を持つフォームがあるということです。マークアップは次のとおりです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>userList</title>
<link type="text/css" rel="stylesheet" href="style.css" />
</head>
<body>
//choose div containg all the images:
<div id="choose"><div id="inside">PICK AN IMAGE:<hr>
//the images will be loaded here in this form
<form type="" method="post" action="">
<input type="image" id="send" name="send" value="images/Woman-02-june.png" src="images/Woman-02-june.png"/>
<input type="image" id="send" name="send" value="images/Man-01-June.png" src="images/Man-01-June.png"/>
</form>
</div></div>
//list div that would display the images the user has chosen
<div id="list"><?php
if(file_exists("list.html") && filesize("list.html") > 0){
$handle = fopen("list.html", "r");
$contents = fread($handle, filesize("list.html"));
fclose($handle);
echo $contents;
}
?></div>
</body>
</html>
そのため、ユーザーが画像をクリックすると、送信されたデータをファイルに書き込むスクリプトに送信されることが想定されています。ファイルが読み込まれ、「リスト」に表示されます。スクリプトは次のとおりです。
<?php
//get data from array
$pikc=$_POST['send'];
//open file to append
$fp=fopen("list.html", 'a');
//write data to file
fwrite($fp, "<div class='msgln'>"."<img src=\"".$pikc."\">"."<br>"."</div>");
//close the file
fclose($fp);
?>
ご覧のとおり、送信されるデータはクリックされた画像の「値」であるため、画像が取得され、画像のマークアップに含めるために連結が実行されます。これを行うには ajax を使用する必要があることはわかっているので、そのための ajax を次に示します。
<script type="text/javascript" src="jquery-1.8.0.min (1).js"></script>
<script type="text/javascript">
$(document).ready(function(){
//If user submits the form
$("#send").click(function(){
var clientmsg = $("#send").val();
$.post("post.php", {send: clientmsg});
return false;
});
});
</script>
次に、「リスト」の自動スクロールと一定の表示を可能にする別の機能を含めます。問題はありません。正常に機能しているため、投稿しません。問題は、最初の画像をクリックするたびに、すべて問題ないように見えます。データはリロードせずにスクリプトに送信されますが、2 番目の画像をクリックすると、ブラウザによってスクリプト ページに移動しますが、ファイルはコンテンツで更新されます。リロードやリダイレクトを停止するには、どうすればこれを修正できますか? これは単なる「模擬テスト」であることに注意してください。実際には mysql データベースからデータが読み込まれます。そのため、両方の画像に同じ ID を使用しました。次のようになります。
//after establishing mysql connection, loading data from database, etc
echo "<form method="post" action="">
//fetch array that is holding the loaded data
while ($row=mysql_fetch_array)
{
$row['img_path']=$image;
//echo the data within the form
echo "<input id="send" type="image" value=\"".$image."\">"."<img src=\"".$image."\">";
}
echo "</form>"
データベース内のすべての画像パスが選択され、それらを使用してそれぞれの画像が表示されるように、300 以上の画像があります。次に、フォームを ajax 経由でスクリプトに送信する必要があり、私の例と同じことが起こるはずです。ID に問題がある場合、300 枚の画像の ID を手動で書き込むことはできません!フォームにIDを与えてからajaxプロセスで使用しても問題ないと思います.間違っていない限り、画像が送信されないか、すべてが送信されるのではないかと心配しています. それで、どうすればこれを修正できますか?事前にありがとう、私はプログラミングに非常に慣れていないので、親切に助けを求めます。(実際のバージョンでは、各ユーザーは独自の「リスト」ファイルとアカウントを持つことに注意してください)。ありがとう、同じことを達成するための別のアプローチであっても、何でも感謝します。