我已经接管了一个在 MySQL 数据库中填充事件的 PhP 应用程序。
我已经对其进行了修改,因此它允许事件有多个收件人。没有问题。
我的问题是,当单击多用户事件进行更新或更重要的是删除时,我要求使用 Javascript 函数“应用于此事件的所有用户?”。问题工作正常。我很欣赏 PhP 是服务器端,而 JS 运行在客户端。
所以我尝试的是我的编辑表单中的一个隐藏字段,默认为“adddetails”,如果他们对多用户问题按“是”,则用 addmultidetails 填充它(我通过临时创建一个文本字段来验证)。您可以从原始标签中看到<form>
adddetails 作为 GET 参数硬编码到帖子网址中。
<form action="data.php?method=adddetails<?php echo isset($event)?"&id=".$event->Id:""; ?>"
class="fform" id="fmit" name="fm" method="post">
// 数据.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 的响应......但我很难过。
如果有人告诉我我的方法全错了,我不会生气,但请记住我正在使用现有代码。