jquery AJAX将数据放在表单
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery AJAX将数据放在表单相关的知识,希望对你有一定的参考价值。
$.ajax(
url:Url,
type : 'POST',
async: false,
dataType : 'json',
success : function(root)
在这里有 没有什么号办法,让去出来的数据去from表单找name根后台属性名一样的,就把后台的值付给这个表单上
$("#d").val(root.useDTO.username);
如果按上面这么写要写好多代码,要定义很多ID,有没有什么办法可以直接将这些值付给这个表单,减少代码量,哪怕写一个公共类出来也好。。。
);
思考了一下,觉得也不是不能实现,简单写了一个jquery扩展方法,不完善,但可以基本实现你的想法。下面是demo,在表单中有两个input和一个select,可以用一句实现对他们三个的赋值。这句就是:$("#abc").setform( t1: "3456", t2: "4444", s1: "option2" );
demo:
<form id="abc" name="abc" action="" method="post">
<input id="t1" name="t1" type="text" />
<input id="t2" name="t2" type="text" />
<select id="s1" name="s1">
<option value="option1">option1</option>
<option value="option2">option2</option>
</select>
<input id="Submit1" type="submit" value="submit" />
</form>
<script>
$(function ($)
$("#abc").setform( t1: "3456", t2: "4444", s1: "option2" );
);
//扩展一个jquery的setform方法
(function ($)
$.fn.setform = function (jsonValue)
var obj=this;
$.each(jsonValue, function (id, ival) obj.find("#" + id).val(ival); )
)(jQuery)
</script>追问
那单选按钮怎么办?多个单选按钮
追答补充了一下,支持多选和单选按钮
option1
option2
单选一
单选二
单选三
单选四
多选一
多选二
$(function ($)
$("#abc").setform( t1: "3456", t2: "12345", s1: "option2",ra1:"单选三",ch1:"多选二" );
);
//扩展一个jquery的setform方法
(function ($)
$.fn.setform = function (jsonValue)
var obj = this;
$.each(jsonValue, function (name, ival)
var $oinput = obj.find("input:[name=" + name + "]");
if ($oinput.attr("type")== "radio" || $oinput.attr("type")== "checkbox")
$oinput.each(function()
if($(this).val()==ival)
$(this).attr("checked", "checked");
);
else
obj.find("[name="+name+"]").val(ival);
);
)(jQuery)
复选框如果多个提交后,获取数据的时候如果是多个就选不上。
追答呵呵,我开发你测试,好!再完善一下:
$(function ($)
$("#abc").setform( t1: "3456", t2: "12345", s1: "option2", ra1: "单选三", ch1: ["多选一", "多选二"] );
);
//扩展一个jquery的setform方法
(function ($)
$.fn.setform = function (jsonValue)
var obj = this;
$.each(jsonValue, function (name, ival)
var $oinput = obj.find("input:[name=" + name + "]");
if ($oinput.attr("type")== "radio" || $oinput.attr("type")== "checkbox")
$oinput.each(function()
if(Object.prototype.toString.apply(ival) == '[object Array]')//是复选框,并且是数组
for(var i=0;i
不行从后台取回来的是String型不是数组型,Saturday, Sunday这个事返回值,打印了一下他是[object String]
追答把返回值作相应的转换。
参考技术A 虽然我不是很明白你的要求,但是我觉得你应该是获取了json数据后想按照name值来赋值是吧?$("input[name=‘username’]")
你看看这个能不能给你一点启发?
jQuery AJAX POST 允许在没有页面重定向的情况下发送表单数据 - 然后如何将数据插入 mysql
【中文标题】jQuery AJAX POST 允许在没有页面重定向的情况下发送表单数据 - 然后如何将数据插入 mysql【英文标题】:jQuery AJAX POST to allow form data sending without page redirect- how to then insert data into mysql 【发布时间】:2011-11-08 20:09:48 【问题描述】:我已经学习了三个教程,一个关于将表单数据提交到 php 文件,一个关于将数据写入 mysql 表,然后一个关于 jQuery AJAX 以在没有页面重定向的情况下完成所有这些操作。
顺便说一句,jQuery AJAX 教程就在这里,因为似乎这个网站上的很多人都问过如何在没有 POST 重定向的情况下发送表单:
POST a form without page redirect
在通过 AJAX 将数据获取到 php 文件方面,我已经正确设置了所有内容,但是 php mysql 语句不会将数据写入数据库。我已经使用 firebug 来检查数据是否到达 php,这就是我认为的。
我确定问题不在于数据库连接,我认为这是由于传递给 php 文件的数据格式所致。混合和匹配教程对我来说很困难。我需要解压我在 jQuery 函数中创建的字符串数据吗?
顺便说一句,在 jQuery AJAX 教程中,他提到“除了发送电子邮件和发送成功消息之外,您还可以在这里做更高级的事情。例如,您可以将您的值发送到数据库,对其进行处理,然后将结果显示给用户。听起来他是在说您可以使用 POST 到 php 文件以外的东西来完成所有这些工作。我以为 php 文件的全部意义在于做数据库存储?
感谢您的宝贵时间。
发送数据的jQuery AJAX:
jQuery(function()
jQuery(".button1").click(function()
var txtRow1 = jQuery('#txtRow1').val();
var tickerRow1 = jQuery('#tickerRow1').val();
var dataString = 'txtRow1='+ txtRow1 + '&tickerRow1=' + tickerRow1;
//alert (dataString);return false;
jQuery.ajax(
type: "POST",
url: "form_action.php",
data: dataString
);
return false;
);
);
还有form_action.php:
<?php
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'pass';
$dbname = 'dbname';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname);
$txtRow1 = $_POST['txtRow1'];
$tickerRow1 = $_POST['tickerRow1'];
$sqlinsert = "INSERT INTO stock_port (name, ticker) VALUES ('$txtRow1', '$tickerRow1')";
?>
【问题讨论】:
【参考方案1】:首先,确保您从帖子中转义数据:
$sqlinsert = "INSERT INTO stock_port (name, ticker) VALUES ('".mysql_real_escape_string($txtRow1)."', '".mysql_real_escape_string($tickerRow1)."')";
第二件事,你没有执行查询(或者这里缺少一些代码?)
mysql_query($sqlinsert, $conn);
【讨论】:
对不起,我会尝试你的建议,我相信 youTube 上的那个人已经让这个 php 文件在没有更多代码的情况下工作了。 是的,你完全正确,我错过了他教程中的查询执行。我很抱歉。它现在正在写入数据库,但我还没有实现你的第一点,但它仍在工作。这很重要吗? 是的,每当您从用户输入中执行 SQL 查询时,您都应该转义数据中不需要的字符(这很关键)。阅读有关 mysql 注入的信息。另一件事是,如果此示例中的字符串包含单引号,则会导致您的查询不正确。以上是关于jquery AJAX将数据放在表单的主要内容,如果未能解决你的问题,请参考以下文章
jQuery插件:Ajax将Json数据自动绑定到Form表单