用户更改类别时自动填充表单时使用 JSON
Posted
技术标签:
【中文标题】用户更改类别时自动填充表单时使用 JSON【英文标题】:JSON usage while autofill the form when user changes the category 【发布时间】:2013-09-05 15:57:42 【问题描述】:当用户更改类别(选择标签更改)时,我正在尝试用数据库信息填充表单。这是我的代码。
<form onsubmit='return false'>
select<select id="select">
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>
fname<input type="text" id='fname' name="fname" /><br />
lname<input type="text" id='lname' name="lname" /><br />
</form>
<script type="text/javascript">
$(document).ready(function()
$("#select").change(function()
selectid = $(this).val();
// using post method to get firstname
$.post("retreive.php", selectid:selectid, function(result)
$("#fname").val();
//again using post method here get lastname
$.post("one.php", selectid:selectid, function(result)
$("#lname").val();
);
);
);
);
检索.php
<?php
//for firstname
if( isset($_POST['selectid']) )
//using this selectid i'm getting firstname
echo $firstname;
exit();
//again for last name
if( isset($_POST['selectid']) )
//using this selectid i'm getting firstname
echo $lastname;
exit();
?>
最后,这个过程会自动填写表单字段,即;名字和姓氏。我知道这是愚蠢和耗时的程序。我听说这项工作很容易完成,不需要让我们的 php 承担所有使用 JSON 概念的负担。我试图理解但无法理解。我希望你们能理解我面临的问题,希望有一个解决方案。提前致谢!
【问题讨论】:
【参考方案1】:您收到了 ajax 请求,但对结果数据什么都不做。 试试这个
$(document).ready(function()
$("#select").change(function()
var selectid = $(this).val();
// using post method to get firstname
$.post("retreive.php", selectid:selectid, function(result)
$("#fname").val(result);
//again using post method here get lastname
$.post("one.php", selectid:selectid, function(result)
$("#lname").val(result);
);
);
);
);
您不需要两个 ajax 请求 - 您可以发出一个请求,并获取 json 数据。 了解jquery ajax method 和 json 格式
$(function()
$('#select').change(function()
var selectid = $(this).val();
$.ajax(
url: 'retreive.php',
data: selectid: selectid,
type: 'POST',
dataType: 'JSON',
success: function(data)
$("#fname").val(result.fname);
$("#lname").val(result.lname);
);
);
);
还有php
<?php
if (isset($_POST['selectid']))
echo json_encode(array('fname' => $fname, 'lname' => $lname));
exit;
如果出现问题,当您发出 ajax 请求时,打开控制台并查找错误。如果您没有错误,请访问网络并查看返回给您的服务器。
【讨论】:
谢谢@Andery Vorobyev,使用该selectid 值我可以检索fname、lname,并且我将保存在一个数组中,如您在php 文件中显示的那样。但是,如果我检索到包含 20 到 30 个字段的记录怎么办?我应该遵循相同的过程,即; array('fname'=>$fname, 'lname'=>$lname, 'address'=>$adress, 'mob'=>$mob,....... 最高 20/30...'city '=>$city, ). in php echo json_encode(array(array('fname' => $fname, 'lname' => $lname), array('fname' => $fname, 'lname' => $ lname)));在 javascript 中,你得到对象数组,你可以根据需要展示它 只是成功回调参数'data'需要改成'result'。现在意识到 JSON 概念的重要性......非常感谢@Andrey Vorobyev,您解决了这个问题。 我正在尝试使用'selectid'从mysql'users'表中获取数据,使用mysql_fetch_array()我得到fname,lname之后我回显如下。但什么也没发生。有没有其他方法来处理 sql 数据或者我在回显时是否犯了任何错误? echo json_encode(array('fname'=>$fname, 'lname'=>$lname)); 你在 mysql 数据库和连接中使用什么编码? JSON 数据必须是 UTF-8 并且请关闭问题 =)以上是关于用户更改类别时自动填充表单时使用 JSON的主要内容,如果未能解决你的问题,请参考以下文章
使用Springboot进行表单管理 - 当用户选择预先输入时自动填充表单