2015-08-28 46 views
-2

我有一個選擇框,我想添加到我的.prepend()中的字符串。我不能在選擇框及其選項更改時硬編碼。爲了克服這個問題,我使用ajax調用來將選擇框及其選項值組裝到一個php腳本中,然後將其發回,然後嘗試將此返回變量用作需要連接到我的前置程序中的硬編碼HTML的HTML。爾加!這證明很困難,可能是一個簡單的語法錯誤,但我似乎無法找到解決方案。ajax返回變量裏面.prepend()

我已經嘗試在測試版本上使用PHP的htmlspecialchars。當這回來,我試圖用來連接,它不起作用,但是,如果我只是硬編碼它相同的事情。

我想我需要的是一段代碼,它使用PHP側的while循環生成,並轉換爲可讀的HTML,以便將我的硬編碼HTML內聯到.prepend()中。沒有混淆的權利?

這裏就是我會追加

$(combidID).prepend('ajax return variable'); 

PHP選擇框組件需要回來,並在一個變量被捕獲。

echo "<select class='typenew' style='margin-top:13px;'><option id='$selID'>$sel</option>"; 
$ports_s = "SELECT * FROM FF_Account_Types ORDER BY account_type"; 
$ports_q = mysql_query($ports_s); 
while($ports_f = mysql_fetch_array($ports_q)){ 
echo "<option value='$ports_f[account_type_id]'>$ports_f[account_type]</option>"; 
} echo "</select>"; 

任何幫助將是美好的。謝謝

+0

作爲庫已被棄用,請避免使用'mysql_ *'功能。請使用'mysqli_ *'或PDO。 –

+1

我認爲你的後端(php)應該返回json到前端,但不是html的部分 – k102

+0

Praveen,謝謝。我從一本書開始學習PHP,並認爲它已經過時了,所以一切都是mysql ...我計劃回去並更新我的代碼到mysqli。但是,當我嘗試做它沒有任何工作。你知道如何解決這個問題,我猜測的命令行。 Iv只在這半年,所以我仍然擺脫了糾結。 –

回答

0

其實問題出在你的echo語句上。在處理ajax請求時,您必須嘗試僅回顯數據一次。 因此,爲了解決您的問題,嘗試使用循環中的while循環 在您的數據中創建一個字符串,循環完成後將字符串按原樣顯示。然後你會得到完整的選擇框HTML

$outputStr = "<select class='typenew' style='margin-top:13px;'><option id='$selID'>$sel</option>"; 
$ports_s = "SELECT * FROM FF_Account_Types ORDER BY account_type"; 
$ports_q = mysql_query($ports_s); 
while($ports_f = mysql_fetch_array($ports_q)){ 
$outputStr .= "<option value='$ports_f[account_type_id]'>$ports_f[account_type]</option>"; 
} $outputStr .= "</select>"; 
echo $outputStr 

我希望這將工作

+0

智能解決方案。雖然這鞏固了盒子,但它仍然不起作用。最奇怪的事情。我把你的解決方案,並在htmlspecialchars回聲,呼應到我的網頁上的div,複製這個HTML字符串,然後使用這個字符串內prepend和它的作品哈哈。由於某些原因,它不喜歡變量版本?我在這裏錯過了什麼? –

+0

一定要檢查你的$ outputStr值...... php變量是否正確地附加在字符串中或不是 –

+0

我明白了。謝謝你的解決方案,因爲它是正確的。我試圖在我的ajax括號之外執行prepend,因此它不能識別變量。把它移到裏面,它就可以工作。謝謝。 –

0

我相信這是一個PHP變量:

echo "<option value='$ports_f[account_type_id]'>$ports_f[account_type]</option>"; 

你需要將它們封閉的{}內。所以請這樣說:

echo "<option value='{$ports_f[account_type_id]}'>{$ports_f[account_type]}</option>"; 

注1:作爲庫已被棄用,請避免使用mysql_*功能。請使用mysqli_*PDO

注2:請確保您只輸出PHP代碼或數據,並且不輸出任何HTML,以保持演示文稿和邏輯之間的分離。