0 返信 最新の回答 日時: Nov 13, 2014 1:24 AM ユーザー:ebisu

    PHPカスタムWeb公開を使ったレコード編集

    ebisu

      データベースがとてもシンプルなものです。NWeb.fmp12のなか、「Program Detail」というレイアウトがあります。

      そこに、「title」というフィールドがあり、ブラウザで編集したいため、一連のphpページを作ってみました。

      検索から一覧を得て、さらに詳細ページへ飛び、データを編集し上書きします。

      (search.php→ result.php→ detail.php→ edit.php→ receive.phpの流れ)

      edit.phpまでは、全て順調に動作しました。しかし、データの上書き(edit.php→ receive.php)はうまくいきません。

      以下はその2つファイルのコードです。

       

      1、edit.php

      <?php

      header("Content-Type: text/html; charset = utf-8");

      ini_set('display_error',1);

      require_once('FileMaker.php');

      $fm = new FileMaker('NWeb','localhost','web','pass');

      $record = $fm->getRecordById('Program Detail',$_POST['recid']);

      ?>

      <!doctype html>

      <html lang = "ja">

      <head>

      <meta charset = "utf-8">

      <title>詳細情報修正</title>

      </head>

      <body>

      <form action="receive.php" method="post">

      <table>

      <tr>

      <th>タイトル</th>

      <td><input type="text" name="title" value="<?=$record->getField('title')?>"></td>

      </tr>

      <input type="hidden" name="recid" value="<?=$_POST['recid']?>">

      <input type="submit" value="保存">

      <!-- recid」とは前のページのformからhiddenにより渡されたレコード番号 --!>

      </table>

      </form>

      </body>

      </html>

       

      2、receive.php

      <?php

      header("Content-Type: text/html; charset = utf-8");

      ini_set('display_error',1);

      require_once('FileMaker.php');

      $fm = new FileMaker('NWeb','localhost','web','pass');

      $edit = $fm->newEditCommand('Program Detail', $_POST['recid']);

      $edit -> setField('title', $_POST['title']);

      $result = $edit->execute();

      echo $_POST['recid'] . $_POST['title'];

      ?>

      <!doctype html>

      <html lang = "ja">

      <head>

      <meta charset = "utf-8">

      <title>保存完了</title>

      </head>

      <body>保存完了</body>

      </html>

       

      上記のedit.phpページに「title」の値を編集し「保存」ボタンを押しますと、receive.phpページ

      へ飛び、echo $_POST['recid'] . $_POST['title'];によって、変更後の値がきちんと表示されます。(<html>部分の「保存完了」も表示)

      ということは、データがformによって、うまくreceive.phpへ渡されたと思われます。

      しかし、実際にFileMaker側を見ると、データは更新されません。

      なお、赤い部分を別の方法(commitなど)を使っても、結果は変わりません。

       

      どなたご存知の方がいらっしゃいますか。

      ご教示いただければ幸いです。