MySQL データベースにイベントを入力する PhP アプリケーションを引き継ぎました。
イベントが複数の受信者を持つことができるように変更しました。問題ない。
私の問題は、マルチ ユーザー イベントをクリックして更新するか、さらに重要なことに削除するときに、Javascript 関数を使用して「このイベントのすべてのユーザーに適用しますか?」と尋ねることです。質問はうまくいきます。PhP はサーバー側であり、JS はクライアント側で実行されることに感謝します。
だから私が試したのは、デフォルトで「adddetails」に設定されている編集フォームの非表示フィールドであり、マルチユーザーの質問に「はい」を押すと、addmultidetails が入力されます(一時的にテキストフィールドを作成して確認しました)。元のタグから、<form>
adddetails が GET パラメータとして投稿 URL にハードコードされていることがわかります。
<form action="data.php?method=adddetails<?php echo isset($event)?"&id=".$event->Id:""; ?>"
class="fform" id="fmit" name="fm" method="post">
// data.php //
<?php
session_start();
function add($st, $et, $sub, $ade){
return $ret;
}
function addDetailed($st, $et, $sub, $ade, $dscr, $loc, $color, $tz){
return $ret;
}
function listByRange($sd, $ed){
return $ret;
}
function list($day, $type){
}
function update($id, $st, $et){
return $ret;
}
function updateDetailed($id, $st, $et, $sub, $ade, $dscr, $loc, $color, $tz){
return $ret;
}
function updateMultiDetailed($id, $st, $et, $sub, $ade, $dscr, $loc, $color, $tz){
return $ret;
}
function remove($id){
return $ret;
}
$method = $_GET["method"];
switch ($method) {
case "add":
break;
case "list":
break;
case "update":
break;
case "remove":
break;
case "adddetails":
break;
case "addmultidetails":
break;
}
echo json_encode($ret);
?>
最初に投稿されたすべての投稿データは正しいですが、隠しフィールドupdmethodにアクセスしようとし、data.phpを変更して$method = $_POST["updmethod"];
、プログラムがエラーメッセージなしでフリーズするようにerror_reporting(E_ALL);
します(モジュールにあります)。
次に、隠しupdmethodを保存する別のフォームを試したので、method=
inを変更できました
<form action="data.php?method=adddetails<?php echo isset($event)?"&id=".$event->Id:""; ?>"
class="fform" id="fm" name="fm" method="post">
動的に構築されますが、そこでも成功していません。
これについて何か助けていただければ幸いです。私は怠惰ではありません。すぐに解決できると思った問題に 2 日間取り組み、サーバー側とクライアント側の関係に関する「チュートリアル」を読みました。Ajaxなどを理解しようとしましたが、何を達成したように見えても、別の壁に遭遇します。
私の問題はすべて、Php/Javascript の関係に起因し、Javascript 関数から Php への応答を取得しようとしていることを知っています....しかし、私は困惑しています。
私のアプローチがすべて間違っていると言われても気分を害することはありませんが、既存のコードで作業していることを思い出してください。