我在表单中有一组5个输入框,前4个是文本,最后一个是选择器:
<div type="input">
<div>
<label>First Name </label>
<input type="text" name="firstname" id="firstname">
</div>
<div>
<label>Last Name </label>
<input type="text" name="lastname" id="lastname">
</div>
<div>
<label>Student ID </label>
<input type="text" name="studentid" id="studentid">
</div>
<div>
<label>Tuition </label>
<input type="text" name="tuition" id="tuition"> <br>
</div>
<div>
<label>Payment Method </label>
<select name="selection" id="selection">
<option value="credit">Credit</option>
<option value="debit">Debit</option>
<option value="bitcoin">Bitcoin</option>
</select>
</div>
</div>
我还有一个函数,当单击按钮#rand时,它会从另一个名为rangen.php的.php文件中获取一组数据,它应该将数据填充到上面的输入中。到目前为止,数据已成功被抓取并以“格式”放入“数据”:
{"firstname":"Ying","lastname":"Lee","tuition":3571,"studentid":"034078741","method":"Debit"}
然而,它没有填写表格。
$("#rand").click(
function()
{
$.get("rangen.php",
{},
function(data)
{
$("#firstname").html(data{"mykey":"firstname"});
$("#lastname").html(data{"mykey":"lastname"});
$("#studentid").html(data{"mykey":"firstname"});
$("#tuition").html(data{"mykey":"lastname"});
$("#selection").html(data{"mykey":"method"});
},);
}
);
答案 0 :(得分:0)
您可以在第3个参数中指定jQuery.get()
输出的格式,例如&#34; json&#34;。然后,你得到一个对象,你可以获得这样的属性。最后,您应该使用val()
代替html()
来填充输入。
$("#rand").click(
function()
{
$.get("rangen.php",
{},
function(data)
{
$("#firstname").val(data.firstname);
$("#lastname").val(data.lastname);
$("#studentid").val(data.firstname);
$("#tuition").val(data.lastname);
/*
// comparing with text
var opts = jQuery("#selection")[0].options;
for (var i=0;i<opts.length;i++) {
if (opts[i].text == data.method) {
jQuery("#selection")[0].selectedIndex = i;
break;
}
}
*/
// Thanks to @Samir for the following:
// comparing with value:
$("#selection").val(data.method.toLowerCase());
},
'json'); // set JSON datatype
}
);