2012-10-07 92 views
1

目前,我的預輸入看起來是這樣的,當我在PHP創建它引導預輸入只顯示結果的第一個字符

echo '<input type="text" style="margin: 0 auto;" data-provide="typeahead" data-items="4" data-source="[,'; 
while ($rowresult = mysql_fetch_assoc($titlequery)) { 
     echo '{value:&quot;'.htmlspecialchars($rowresult['title']).'&quot;'."},"; 
} 
     echo ']">'; 

它輸出這樣的:

<input type="text" style="margin: 0 auto;" data-provide="typeahead" data-items="4" data-source="[,{value:&quot;2010-11 Graf Intern&quot;},{value:&quot;2nd Year Finance Explorer, Mizani &amp; L'Oreal Technique&quot;},{value:&quot;A&amp;R Intern&quot;},{value:&quot;Account Executive&quot;},{value:&quot;Account Manager&quot;},{value:&quot;Account Service Representative&quot;},{value:&quot;Account Strategist&quot;},{value:&quot;Accountant&quot;},{value:&quot;Accounting Intern&quot;},{value:&quot;Accounting Intern/Analyst&quot;},{value:&quot;Accounts payable&quot;},{value:&quot;Acquisition Marketing Intern&quot;},{value:&quot;Acquisitions Associate&quot;},{value:&quot;Acting Manager&quot;},{value:&quot;Acting Software Manager&quot;},{value:&quot;Administrator&quot;},{value:&quot;Admissions Ambassador&quot;},]"> 

不幸的是,那隻能說明它可以找到每個值的第一個字符(值是引導的默認值)。

編輯:

這個問題圍繞格式化結果展開,實際上,發生了什麼事情是Javascript試圖引用一個不存在的數組,因此它使用了第一個字符的元素[0]。

+0

我不知道它是否有不同,但數據的minLength不能正常工作或者。 – Jay

+1

首先,不要使用ext/mysql('mysql _ *()'函數),而是使用PDO或MySQLi。接下來,您應該使用'htmlspecialchars(json_encode($ arr))'來代替手動創建(語法無效)字符串。 – DaveRandom

+0

添加了json_encode部分,並沒有幫助。附註:發佈之前完成開發的mysqli計劃移動。 – Jay

回答

1

嘗試使用此解決方案:

<? 
$chars = array(":", "'", "?", '"', "/"); 
while ($rowresult = mysql_fetch_assoc($titlequery)) { 
     $Str = $rowresult['title']; 
     $Data[] = str_replace($vowels, "", $Str); 
} 
if(isset($Data)): ?>  
<input type="text" style="margin: 0 auto;" data-provide="typeahead" data-items="4" data-source="[<?= implode(',', $Data) ?>]"> 
<?php endif; ?>