我对 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>
然后我包含另一个功能,该功能可以自动滚动和不断显示“列表”,我对此没有任何问题,它工作正常,所以我不会发布它。问题是,每当我点击第一张图片时,一切似乎都很好,数据被发送到脚本而无需重新加载,但每当我点击第二张图片时,我的浏览器都会将我带到脚本页面,虽然文件随内容更新。我该如何解决这个问题,以停止任何重新加载或重定向?请注意,这只是一个“模拟测试”,真实的东西将从 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 上,我不能手动为三百张图片编写 id!,我也没有'不要认为给表单一个id然后在ajax进程中使用它就可以了,我担心不会发送任何图像,或者会发送所有图像,除非我错了)。那么,我该如何解决这个问题?提前谢谢你,我对编程很陌生,所以我请求帮助。(请注意,每个用户,在真实版本中都有自己的“列表”文件和帐户)。谢谢,任何事情都会受到赞赏,甚至是完成同一件事的不同方法。