1

我已经接管了一个在 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 的响应......但我很难过。

如果有人告诉我我的方法全错了,我不会生气,但请记住我正在使用现有代码。

4

0 回答 0