使用jquery填充表单字段
Filling form fields with jquery
所以我有一个表单,将用于插入和编辑数据从MySQL。我想与其写两种形式,不如只写一种,两种用途都可以用。因此,当它用于插入新数据时,其字段(输入等)显然是空的。但是当要编辑现有数据时,我使用Jquery用.val()填充字段。
像这样:
function formSetup(form_name, array_fields)
{
$(document).ready(function(){
var selector;
for(var key in array_fields)
{
selector = "form[name=" + form_name + "] [name=" + key + "]";
//alert(selector);
$(selector).val(array_fields[key]);
}
});
}
然后:
var fieldsArray = new Array();
fieldsArray["field1"] = "data read from Myqsl php";
fieldsArray["field2"] = "data read from Myqsl php";
//etc
Btw, PHP做的工作告诉我的页面是否这个表单应该插入或编辑数据,所以这个javascript函数只会被PHP调用当有$_GET["action"]=="edit"
我想知道的是,这是做这种事情的最佳方法吗?有什么标准的做法吗?
我来。我正在为两个动作制作相同的表单-插入和编辑。如果您使用某种ajax技术并尝试在不刷新页面的情况下填写表单,那么您的方法是正确的。但更好的方法是使用php通过将数据回显到字段值中来添加值。没有这样的标准。接受你。
你是对的,只有一种形式很好。值通常在服务器端填充(在您的情况下是PHP),但这取决于项目架构-您可以使用jQuery。PHP示例:
<input type="text" name="email" id="email" value="<?=$data['email']?:''?>" />
jQuery示例:
$.get("getData.php", function(data){
$("input#id").val(data['id']);
$("input#email").val(data['email']);
});
要查找表单是否用于插入或更新数据,请使用包含数据库记录主键(通常为id
)的隐藏字段:
<input type="hidden" name="id" id="id" value="<?=$data['id']?:''?>" />
当此字段为空时-创建新记录。
我会在服务器端这样做。
在原始PHP中,这是一个没有像Yii, Cake等支持框架的PHP。我会实现一个轻量级的MVC框架。
创建一个业务对象类。
class MyData
{
$field1;
$field2;
..
}
然后从数据源填充业务对象。
$data = new MyData();
$data->field1 = "Something";
$data->field2 = "Other stuff...";
或者如果是新数据。
$data = new MyData();
创建表单模板。form.tmp.php
<form ...>
<input type="text" name="field1" value="<?= $data->field1; ?>" />
<input type="text" name="field2" value="<?= $data->field2; ?>" />
</form>
然后在模板周围使用浅色包装。
ob_start();
include('form.tmp.php');
$html = ob_get_contents();
ob_end_clean();
我已经有一段时间没有做过这样的事情了。有很多PHP框架可以帮你解决这个问题。一些轻量级的,一些重型企业的。
我没有测试这个,但这应该让你开始。
与其用javascript填充表单,更好的方法是处理这个服务器端。
在你的php模板中,你可以像这样填充输入
<input name="field1" type="text" value="<?php echo $fieldValues['field1']; ?>" />
<input name="field2" type="text" value="<?php echo $fieldValues['field2']; ?>" />
如果每个变量都没有值,则字段将为空白,否则将插入从数据库检索到的数据。
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 添加和删除隐藏字段数组中的值,而不提交表单
- 单击鼠标,用MySQL数据填充html表单输入字段
- 带有条件字段的PHP表单
- 防止在输入字段上单击事件
- 高级自定义字段按单选按钮值排序
- 使用JQuery启用输入字段的单选框
- SmartyStreets:使用条件字段调整表单中已验证勾号的位置
- 组合功能以使用 Jquery 在一组单选按钮中显示输入字段和单选按钮
- 使只读字段不可单击
- 使用 JavaScript 进行 HTML 字段表单验证
- JavaScript 在不输入输入字段/表单的情况下传递输入
- JQuery 在动态添加输入字段时单击浏览,而 ajax 不起作用
- 我可以让时间选择器在输入字段中单击时触发吗?
- 将隐藏字段表单值传递给控制器
- 隐藏小视口中的字段,单击按钮再次显示
- 我可以给html文本字段表单中的元素提供相同的名称和id吗
- 在新行上显示输入字段(基于单选)
- 在文本字段(表单)后插入节点
- 动态生成的名称字段的单选按钮组验证