我有一個CSV文件,2列名稱&圖片的JavaScript和jQuery的多維數組查找,使用CSV文件
我使用Javascript/PHP讀取和自動完成搜索字段中顯示的名稱列表。
// - >這就是我們假設發生< - //
當用戶進行搜索時,他們輸入的東西到文本字段,自動完成下拉與所有可用的名稱匹配的有查詢,他們點擊搜索,加載圖標顯示幾秒鐘,而代碼檢查匹配,然後結果顯示給用戶使用jQuery(即將使用向下滑動操作顯示結果,在主#searchbox )
我無法從搜索中獲取信息來匹配我的數組值,併爲名稱值帶回相關圖像..我需要的僅僅是搜索字段值t Ø帶回這個名字的產生密切相關的相關圖像......並顯示圖像和標題在結果DIV用戶...
到目前爲止的代碼如下..
// PHP來讀取csv文件並構建陣列
<?php
$maxlinelength = 1000;
$fh = fopen('tartans.csv', 'r');
$firstline = fgetcsv($fh, $maxlinelength);
$cols = count($firstline);
$row = 0;
$inventory = array();
while (($nextline = fgetcsv($fh, $maxlinelength)) !== FALSE)
{
for ($i = 0; $i < $cols; ++$i)
{
$inventory[$firstline[$i]][$row] = $nextline[$i];
}
++$row;
}
fclose($fh);
?>
// Javascript & php;
包括在汽車的名稱完整的腳本 這個名字產生從CSV列表,用逗號分隔,然後使用JavaScript分裂()函數,它加載的所有名稱的自動完成的功能..
<script type="text/javascript">
$(document).ready(function(){
var data = '<?php foreach($inventory['NAME'] as $key => $value){
echo $value.",";
}?>'.split(",");
$("#s").autocomplete(data);
})
</script>
//將jQuery來處理表單提交併返回結果
<script type="text/javascript">
$(document).ready(function() {
$('#loader').hide();
$('#tartanResults').hide();
$('#submit').click(function() {
$.ajax({
url: '/select_tartan.php', // current page
beforeSend: function() {
$('#loader').show();
},
complete: function() {
$('#loader').hide();
$('#tartanResults').show();
}
});
return false;
});// submit
});// doc ready
</srcipt>
現在這是有問題的IM,試圖數組中加載特定名稱返回匹配的鍵值,匹配它它的圖像,
該陣列如下使用print_r($ inventory); //雖然它的很多較大,
Array
(
[NAME] => Array
(
[0] => Abercrombie Ancient
[1] => Abercrombie Modern
[2] => Aberdeen Tartan Modern
[3] => Agnew Ancient
[4] => Allison Ancient
[5] => Anderson Ancient
[6] => Anderson Modern
[7] => Anderson Weathered
[8] => Angus Ancient
[9] => Angus Modern
)
[IMAGE] => Array
(
[0] => images/rare/abc_ar.jpg
[1] => images/rare/abc_mr.jpg
[2] => images/rare/abd_mr.jpg
[3] => images/rare/agw_ar.jpg
[4] => images/rare/all_ar.jpg
[5] => images/rare/and_ar.jpg
[6] => images/rare/and_mr.jpg
[7] => images/rare/and_wr.jpg
[8] => images/rare/ang_ar.jpg
[9] => images/rare/ang_mr.jpg
)
)
我需要表明的是返回的名稱:和圖片,很像
<?php
echo $inventory['NAME'][8];
echo $inventory['IMAGE'][8];
?>
這被證明更加困難比我首先想到..
任何幫助球員都非常感謝..
馬蒂
//基本的HTML頁面
<!-- SEARCH FORM/LOADER-->
<div id="searchbox">
<h3>FIND YOUR TARTAN <small>press enter to search.</small></h3>
<form id="tartanSearch" action="select_tartan.php" method="get">
<div class="search">
<input type="text" size="70" class="inputbox" alt="Search" id="s" name="search" />
<input value="Search" id="submit" type="submit" />
</div>
</form>
</div>
<div id="loader"><img src="images/indicator.gif" width="16" height="16" /></div>
//當結果被加載(希望滑下動畫)
<!-- RESULTS -->
<div id="tartanResults">
<h3><!-- WERE THE NAME LOADS --></h3>
<div class="tartan_img"><!-- WERE THE IMAGE LOADS --></div>
<div class="tartan_text">
<ul style="list-style:none;">
<li>Description text here</li>
<li>With more text here aswell</li>
<li>We can have some here also</li>
</ul>
</div>
</div>
嗨 首先,我看到ajax請求,但您似乎沒有對此請求結果做任何事情。你必須把它放在頁面上,就像在jQuery例子中一樣:類似於$('。result')。html(data); (你必須有.result元素)。 其次 - 你正在抓取整個頁面,這對於AJAX請求來說很少見。你不應該爲這個查詢做特別的動作/頁嗎? – 2010-03-18 12:10:18
感謝Tomasz的回覆,好吧,我現在開始遇到麻煩了,你會推薦什麼?文本字段的值應該搜索數組並將名稱與其圖像匹配,然後該圖像應該存儲在變量中?另一個數組? 然後在結果div中顯示其適當的位置標記。 – Marty 2010-03-18 12:15:18
感謝喬希,完全正確,生病5分鐘,並通過我的舊問題,並打勾是適當的。 – Marty 2010-03-18 13:39:45