2011-11-07 82 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