0

好的,所以我要做的是遍历 Json 解码数组,然后搜索 ID(key),然后将该数据发布到表单中进行编辑,然后对其进行编码,然后保存它,这似乎是一项简单的任务,但是我没有使用数据库或 java 或 java 脚本我必须仅使用 Json、PHP 和 HTML 来执行此操作,我的主要代码(控制器)文件如下

<?php

$file_name = 'engagements.json'; // Serialized speaking engagments

/**
* Controller for Speaking Engagements
*/

if (!isset($_REQUEST['act']) || !$action = $_REQUEST['act']){
  $action = 'list';
} //End If

switch ($action) {
  case 'list': // List
    $json_data = file_get_contents($file_name);
    if (!$engagements = json_decode($json_data, true)) { // Convert serialized data to               array
      $engagements = array();
    } //End If
    include 'engagements_list.phtml';
    break;

  case 'view': // View
    $json_data = file_get_contents($file_name);
    $temp_array = json_decode($json_data);

    foreach($temp_array as $key=>$id){
      if($id->ID == 2){
        echo "got it \n";
        echo "ID: $id->ID \n";
        echo "Title: $id->Title \n";
        echo "Description: $id->Description \n";
      }// End If
    }
    break;

  case 'add': // Add
    $temp_array = array();
    $file = file_get_contents($file_name);
    $json_data = json_decode($file);
    $high_value = count($json_data);
    $high_value++;
    $temp_array['ID'] = $high_value;
    $temp_array['Title'] = $_POST['Title'];
    $temp_array['Description'] = $_POST['Description'];
    $json_data[] = $temp_array;
    file_put_contents($file_name, json_encode($json_data));

    include 'engagements_add.phtml';
    break;

  case 'edit': // Edit

    $file = file_get_contents($file_name);
    $json_data = json_decode($file, true);

    // what comes next here

    include 'engagements_edit.phtml';
    break;

  case 'delete': // Delete
    break;

  default:
    throw(new Exception('Invalid action given'));
    break;
}//End Switch

exit;

<!-- Edit View -->
<form action="engagements.php?act=edit?ID=<?php $_GET['ID']?>" method="get">
  <table>
    <tr><td><input type="hidden" name="ID"></td></tr>
    <tr><td><input type="text" style="width:500px;" name="Title"></td></tr>
    <tr><td><textarea cols="40" rows="2" style="width: 500px; height:250px;" name="Description"></textarea></td></tr>
    <tr><td><input type="submit" name="Submit" value="Submit"/></td></tr>
  </table>
</form>

请帮助我,我到处寻找答案,但可以找到任何解释如何正确执行此操作的资源

4

1 回答 1

0

一点点。

<form action="engagements.php?act=edit?ID=<?php $_GET['ID']?>" method="get">

我假设您打算这样输入:

<form action="engagements.php?act=edit&ID=<?php echo $_GET['ID']?>" method="get">

$_GET声明也缺少一个echo

更新:

?>我注意到在编辑视图之前缺少php 关闭标记。以及开关中的“查看”部分,为什么要回显 ID 属性?它可能如下:

echo "ID: $id['ID'] \n";
于 2012-04-25T19:03:12.123 回答