使用Php&;将正确的Json文件加载到Html表单中;滑动分页
我将Html表单变量存储在名为SavedPB的目录中的FirstName.json中使用Php&;将正确的Json文件加载到Html表单中;滑动分页,php,jquery,json,Php,Jquery,Json,我将Html表单变量存储在名为SavedPB的目录中的FirstName.json中 <form action="save_json.php" method="post"> First name: <input type="text" name="firstname" /><br /> Last name: <input type="text" name="lastname" /><br /><br /> <
<form action="save_json.php" method="post">
First name: <input type="text" name="firstname" /><br />
Last name: <input type="text" name="lastname" /><br /><br />
<input type="submit" id="submit" value="Send" />
</form>
我面临两个似乎无法解决的问题
- php响应列表
FirstName1 button
Firstname2 button
如果单击FirstName2旁边的按钮,我需要在jquery脚本中将name变量更改为$.getJSON(“SavedPB/FirstName2.json”,function(data)
- 似乎只有当我按下列表中第一个按钮时,才会将变量加载回表单字段
如果我单击Firstname1旁边的按钮,它会将json加载回表单中,但当我单击FirstName2旁边的按钮时,它不会加载json。很多问题都来自PHP生成具有相同ID的多个元素
if ($handle = opendir('SavedPB')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$entry = substr($entry, 0, strlen($entry) - 5);
echo "
<tr>
<td class=\"celLabel\">$entry\n</td>
<td class=\"celButton\">
<button class=\"btnLoad\">Load Json</button>
</td>
</tr>";
}
}
closedir($handle);
}
最后,我不确定您的意思是$entry
是您试图访问的FirstName1变量,但您可以通过jQuery以同样的方式获得它
$(".btnLoad").click(function(){
var yourVar = $(this).closest('.cellLabel').html();
$.getJSON("SavedPB/FirstName.json", function(data) {
$('input[name="firstname"]').val(data["firstname"]);
$('input[name="lastname"]').val(data["lastname"]);
});
});
编辑下面的评论
var yourVar = $(this).closest('.cellLabel').html();
或
将获取$entry的值。“\n”
PHP变量。为简化操作,可以从PHP中删除“\n”
。如果$entry
是保存名字的位置,则可以执行以下操作
$.getJSON("SavedPB/" + yourVar + ".json", function(data) {
但是,一种更干净/更好的方法是为按钮提供一个数据值或其他伪属性,并使其包含PHP中的以下数据:
<button class=\"btnLoad\" data-value=\"$entry\">Load Json</button>
然后,您就不必依赖一个完全不相关的表单元格的值,该单元格可能会或可能不会添加额外的格式/文本。这是一个可怕的、经典的错误;类而不是ID确实使按钮起作用。为了阐明最后一个问题:$.getJSON(“SavedPB/?.json”,function(data){$('input[name=“firstname”]).val(数据[“firstname”]);$('input[name=“lastname”]).val(数据[“lastname”]);});如果代码中添加了问号,则应添加按钮前面名称之外的变量,这样可以按照您之前的建议完成此操作吗?@user1443063根据您给出的内容编辑了答案,希望完全回答您的问题。
var yourVar = $(this).closest('.cellLabel').html();
var yourVar = $(this).closest('.cellLabel').text();
$.getJSON("SavedPB/" + yourVar + ".json", function(data) {
<button class=\"btnLoad\" data-value=\"$entry\">Load Json</button>
$.getJSON("SavedPB/" + $(this).attr('data-value') + ".json", function(data)