2011-11-07 85 views
0

感谢您的任何帮助。我对这些东西都很陌生。使用php,mysql和jquery使图像交互和可交换

我创建了一个jQuery的“实时搜索”表单,将表单的输入字符与我的mysql数据库中字母图形的关联图像链接起来(例如,用户在实时搜索和php回声六个图像中输入f-l-o-w-e-r)。

下面是引用PHP代码,它传递图像,以一个div中的index.php:

foreach(str_split($_POST['search_term']) as $alpha) 
     { 
     echo "<img src='../delete/images/{$alpharray[$alpha][0]['imagePath']}' width='100' height='140'></src></a>"; 
     } 

我想一个用户点击这些图像之一打开相关图像的旋转木马从那里他/他可以拖放一张新图像来换出旧图像。最终,他们可以将整个自选信件作为订单提交。

从jquery的角度来看,我可以计算出旋转木马以及如何制作可拖动的,可拖放的东西。但是我在思考如何做可交换部分时遇到了麻烦。制作一个新阵列?也许有人可以帮助我直接提供一些提示......?

非常感谢!

+1

坦率地说,这是一个防白痴指导的要求,旨在为更好地研究这个问题树立新手。据我了解,我依次回应数组的特定值。这是一个静态输出。 为了使它动态,我(例如),而不是需要从这些值创建一个新的数组,并将此数组传递给jQuery?那么我在jQuery中使用类似.replacewith()的方法来使用户能够动态地交互并更改这个数组?这种做法可能是错误的。这是澄清这一部分,我需要帮助。 – Peter

回答

1

不知道你的问题到底是什么,但你可以阅读一个.each()的图像源并将它们发布到你的php脚本中。看起来你有一个数组来存放所有的数据,而你只是阅读你想要的元素。所以你可以重写你想要改变的元素,或者创建一个新的数组,取决于你想要做什么。而且你还标记了你的问题mysql,不太确定你的数据是如何存储的。

编辑:


好吧,我在这里看到两种可能的方式。人们会在一个div正确地创建所有的图像,每幅图像上创造这样的:

foreach(str_split($_POST['search_term']) as $alpha) 
{ 
    echo "<img class="clickable" src='../delete/images/{$alpharray[$alpha][0]['imagePath']}' width='100' height='140'></src></a>"; 
    echo '<div class="editimages">'; 
    // Code that creates the images with which the above image can be replaced 
    echo '</div>'; 
} 

不足之处是,用户获得所有在同一时间,这可能会加载缓慢,创造交通的很多图像。上升是,它是最简单的解决方案,并且会在用户点击时作出反应。你可以做一些像

$(".clickable").click(function(){ 
    $(".editimages").hide(); 
    $(this).next().show(); 
}); 

在你的JS。


另一种解决方案是在点击时加载图像,此时用户想要编辑图像。最重要的是,它只会加载你需要的图像,因此在init中节省流量和加载速度会更快,但当用户想要查看它们时,它将开始获取替换图像,这取决于服务器的速度以及有多大图像是,这可能会感觉有点慢。

+0

感谢您的想法。我了解.each()的功能,但我不确定我是否关注你。我试图在上面的评论中添加说明。最终我可能会有数百个图像。mysql表具有图像的属性,其中之一是存储在文件夹中图像的路径。谢谢你的帮助。 – Peter

+0

编辑我的答案 – Flo

+0

感谢您的所有帮助。这是思想的好去处。我会看到我可以拿到的地方。我的目标是使其只能点击某个特定字母的“组合”(例如,输入字h-o-n-e-y中的h组合)。我可能错误地阅读了你的脚本,但看起来你的方式会调用相同的聚集组合,而不管哪个字母被点击。我可能需要一个新的PHP查询被解雇onclick或类似于你在第二个选项中提出的建议。 – Peter