Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Php&;将正确的Json文件加载到Html表单中;滑动分页_Php_Jquery_Json - Fatal编程技术网

使用Php&;将正确的Json文件加载到Html表单中;滑动分页

使用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 /> <

我将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 />
  <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)