2012-04-05 71 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。