2012-04-05 65 views
0

由於我是新手,我希望得到您的建議。
到目前爲止,我已經想出了填充表單域的兩種方法。
說這是我的html:PHP或Jquery填充表單域?

<input id="test" name="test" type="text"> 

正如你看到的每個字段的ID名稱相匹配。
當它的時間從SQL填充字段我可以做兩種:

PHP:

<input id="test" name="test" type="text" value="<?php if(isset($SqlRequested['test'){echo $SqlRequested['test'];}"> 

相若方式和寫我的表格的所有領域..​​.
或在頭部添加此
JQUERY:

<script> 
<?php echo "$(document).ready(function(){"; 
     foreach ($SqlRequested as $id => $value){ 
       echo "$('#" . $id . "').val(\"" . $value . "\");" 
       echo "};" 
     echo "});" 
?> 
</script> 

除了這個事實,jQuery的給了我一些問題,當字段包含「輸入/回報」在他們(W這可以通過使用.html或.text我猜)

哪一個你會建議,什麼是每種方法的缺點或親?
任何代碼的改進?
有沒有其他方式我失蹤?
關於輕鬆解決上述小問題的任何建議?

Thanx提前。

編輯:我只注意到了jQuery .populate,其中即時猜測是像我的第二個方法,你只需要得到你的數據在{'id':'value',...}

回答

3

你應該使用PHP的格式來渲染頁面有人沒有JavaScript將不會得到您的JavaScript版本的值。

PHP: 優點: 所有的瀏覽器都會得到你想要的東西。 輸出HTML可以說是比較正確的,因爲它有用戶期望的價值在裏面

缺點: ...增加服務器負載....這麼小的一個量,它可能不應該甚至是騙子

JS: 優點: ...

缺點:啓用 非JS瀏覽器將無法看到您所期望的值。

改進: 在PHP中編寫一個函數,如果它存在以減少重複鍵入,它將自動回顯您的值。喜歡的東西:

function echoValue($value) { 
global $SqlRequested; 
    if(isset($value)){ 
     echo $value; 
    } 
} 

或者,如果你想:

function echoValue($value) { 
global $SqlRequested; 
    if(isset($SqlRequested[$value])){ 
     echo $SqlRequested[$value]; 
    } 
} 
+0

因此,將此函數添加到我的頁面頂部,我的html應該是 '「>' 是否正確? – krasatos 2012-04-05 07:05:30

+0

不完全,我更新了代碼,因爲它不正確。現在使用示例代碼,它會是'」>'。如果您想使用'」>'您可以使用函數的第二個版本。 – 2012-04-05 07:09:04

+0

謝謝,這對我很有意義。 有沒有一些方法可以讓PHP讀取代碼所在輸入的ID /名稱? (以我自己的想象力語言):'」>'或am我問太多了? :) – krasatos 2012-04-05 07:13:51

0

有趣的問題 - 所有的使用在不同的框架此方法,CMS等。 最「簡單」的和直接的方法是

value="<?php echoValue('test');?>" 

最強大和最「複雜」就像knockout.js用於渲染的形式使用的框架。

是的 - 「誰不會有JavaScript?」

公理 - 所有的都有javascript。