JSON结果未显示全日历中的选定事件 - php

我有一个HTML选择框,允许管理员根据所选的老师选择事件

      <select id="teachermale" name="teachermale">
        <option selected disabled>Male Teachers</option>
        <option value="Mohamed Adil">Mohamed Adil</option>
        <option value="Sherif Reda">Sherif Reda</option> 
        <option value="Mohamed Shahban">Mohamed Shahban</option> 
        <option value="Abdullah al Haiti">Abdullah al Haiti</option>
        <option value="Salah">Salah</option>
        <option value="Ahmed Nabil">Ahmed Nabil</option>  
        <option value="Abdul Tawab">Abdul Tawab</option>
        <option value="Mahmoud Mahmoud">Mahmoud Mahmoud</option>  
        <option value="Ahmed Ghanim">Ahmed Ghanim</option>
      </select>

接下来的jquery从fullcalendar中删除所有当前事件,以显示特定教师的事件。并建立了一个ajax请求,以从数据库中获取各个教师的事件。

      $(function() {
        $("#teachermale").change(function(){
                  var str = "";
                   $("#teachermale option:selected").each(function(){
                      str += $(this).text() + "";  
                  });

                  console.log(str);
                  $('#calendar').fullCalendar('removeEvents');
                  changeDisplay(str);


               }).change();

      }); 
      function changeDisplay(str){
        console.log(str);
         $.ajax({
                 url:'find_event.php',
                 type:'POST',
                 data : '&str='+encodeURIComponent(str),
                 dataType:'text',
                 success: function(json) {
                    $('#calendar').fullCalendar('addEventSource', json);
                 },
                 error: function(xhr, textStatus, errorThrown) {
                    alert(xhr.responseText); 
                 }
          });

       } 

POST正在运行,并且已通过JSON正确提取了特定教师的事件。

以下是获取事件的find_event.php脚本。

            // List of events
            $json_array["title"]=$_POST["str"];
            $title =$json_array["title"];
            echo $title;

            // connection to the database
            try{

                    $pdo = new PDO('mysql:host=localhost;dbname=*******', '******', '*******');
                } catch(Exception $e) {

                exit('Unable to connect to database.');
            }

            $requete = "SELECT * FROM `evenement` WHERE `title`=?";
            // Prepare your query
            $stmt = $pdo->prepare($requete);
            if ($stmt) {
                if ($stmt->execute(array($title))) {
                    $events = array();
                    $dbEvents = $stmt->fetchAll(PDO::FETCH_ASSOC);
                    foreach ($dbEvents as $event) {
                        $event['allDay'] = false;
                        $events[] = $event;
                    }
                } else {
                    // check for error
                    print_r($stmt->errorInfo());
                }
            }

            echo json_encode($events);

控制台会记录字符串(即标题),并在“网络”选项卡上显示该str已发布。但是,即使我使用$('#calendar').fullCalendar('addEventSource', json);成功获取json源中的事件,我似乎也无法使日历显示在屏幕上。

任何有关如何检查或如何显示事件的输入将不胜感激。

当完成console.log时,Json响应:
Salah[{"id":"24","title":"Salah","start":"2016-06-02 10:00:00","end":"2016-06-02 14:30:00","url":null,"allDay":false,"color":null},{"id":"26","title":"Salah","start":"2016-06-23 08:30:00","end":"2016-06-23 11:30:00","url":null,"allDay":false,"color":"green"}]

这是请求标头的样子。

JSON结果未显示全日历中的选定事件 - php

参考方案

让我们关注代码中的str变量。

$("#teachermale").change()中,通过在选定的每个选项上循环创建str变量,并获取其文本。

str wich现在是选定名称的“集合”(没有分隔符,顺便说一句,因此看起来像“ Sherif RedaMohamed ShahbanAbdul TawabAhmed Ghanim”)然后传递给changeDisplay(str)

它被认为是encodeURIComponent(http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp)值,并作为$_POST[data]发送到find_event.php

假装您的控制台日志是正确的相关错误,您的问题真的很奇怪。
.oO(我认为不是)
因为该地址不适合显示的代码(str变量)...,并且该方法也不适合。

为什么要触发与变更处理程序链接的change

与您发布的代码相关,您应该在URL find_event.php上查找POST的控制台状态。
您的脚本似乎存在多个问题。
; /
希望它能有所帮助。

代码未在服务器目录php中创建文件 - php

我正在尝试使用以下代码将新文件写入服务器error_reporting(E_ALL); ini_set('display_errors', 1); if($_SERVER['REQUEST_METHOD'] == "POST") { $html = $_POST['html'];…

CodeIgniter更新查询被执行两次 - php

我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…

故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php

我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…

通过php表单修改我的xml文件 - php

这是我的xml文件和下面的php代码。我输入了一个输入类型,它将按名字搜索学生。然后将显示有关特定学生的信息,并且将显示另一个按钮更新。问题是我想在那之后修改信息。如何通过标签名称获取元素,以便可以修改有关特定学生的信息?<students> <student> <firstname>John</firstname&…

在ajax之后将页面内容复制到同一页面 - php

我有简单的注册公式,我希望首先使用ajax发送,而不刷新页面以控制是否插入正确的数据,然后仅重定向到其他页面。问题是,当我通过ajax将其发送到同一页面后,一切正常,但是页面内容重复,我可以看到两次...这是我的ajaxfunction registruj () { var name = $('#meno').val(); var pri…