ebisu

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

Discussion created by ebisu on Nov 13, 2014

データベースがとてもシンプルなものです。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など)を使っても、結果は変わりません。

 

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

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

Outcomes