Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要jQuery将数据发布到php文件的帮助吗_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 需要jQuery将数据发布到php文件的帮助吗

Javascript 需要jQuery将数据发布到php文件的帮助吗,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,所以我要做的是使用一个完整的日历ajax调用在数据库中注册事件。 当我尝试这样做时,不会弹出错误,事实上,ajax调用会返回成功添加到数据库的结果 我单独测试了PDO查询,它工作得非常完美,所以请帮助我写ajax文章,因为这就是我列出的错误 这是default.html中的ajax调用 selectable: true, selectHelper: true, select: function(start, end, allDay) { var title = prompt('Event

所以我要做的是使用一个完整的日历ajax调用在数据库中注册事件。 当我尝试这样做时,不会弹出错误,事实上,ajax调用会返回成功添加到数据库的结果

我单独测试了PDO查询,它工作得非常完美,所以请帮助我写ajax文章,因为这就是我列出的错误

这是default.html中的ajax调用

selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
    var title = prompt('Event Title:');
    var url = prompt('Type Event url, if exits:');
    if (title) {
         var start = $.fullCalendar.moment(start);
         var end = $.fullCalendar.moment(end);
         console.log("Event Triggered");
         $.ajax({
                 url: 'add_events.php',
                 data: 'title='+ title+'&start='+ start +'&end='+ end +'&url='+ url ,
                 type: "POST",
                 dataType: 'text',
                success: function(json) {
                    alert('Added Successfully');
                 },
                error: function(xhr, textStatus, errorThrown) {
                     alert(xhr.responseText);
                }
         });
        calendar.fullCalendar('renderEvent',
        {
             title: title,
             start: start,
             end: end,
             url:url,
             allDay: allDay
        },
            true // make the event "stick"
        );
    }
    calendar.fullCalendar('unselect');
}
这是add_events.php(请注意,这没有错误,只是没有收到帖子。)


我在控制台日志中看到带有post变量的xhr GET请求。它们只是没有从jQuery转到php

如能为如何实现这一目标提供任何帮助,将不胜感激

添加事件后弹出的JQuery显示:

PHP错误:未定义索引(适用于所有变量)

jQuery中设置的变量不会传递给php

主文件(default.html)的标题如下所示:

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
 <link href='css/fullcalendar.css' rel='stylesheet' />
 <link href='css/fullcalendar.print.css' rel='stylesheet' media='print' />
 <script src='js/moment.min.js'></script>
 <!--<script src='js/jquery.min.js'></script>-->
 <script src='js/fullcalendar.min.js'></script>

控制台出现以下错误:- POST 500(内部服务器错误)

以下是“网络”选项卡中的错误:-

根据
提供的答案,我能够使查询正常工作并解决jQuery错误

但该职位不起作用:-
我之所以这样说是因为我将所有字段都更改为允许NULL,但它不允许NULL,并在数据库中创建了NULL,NULL,NULL,NULL条目

根据请求的图像,需要在
ajax
调用中设置
数据类型:'text',

此外,在PHP中,将PDO更改为:

// "?"s here will get replaced with the array elements below
$sql = 'INSERT INTO  evenement ( title,start,end,url) VALUES( ?, ?, ?, ? )';
$stmt = $db->prepare($sql);
$stmt->execute(array($title, $start, $end, $url )); // these array elements will replace the above "?"s in this same order

// check for errors
if($stmt->errorCode() == 0) {
    $id = $db->lastInsertId(); // get the id form the inserted record, not really needed but I put it here to show you how

}
else {
    // had errors
    $errors = $stmt->errorInfo();
    print_r($errors);
}
此外,在构建数据字符串时,应始终对输入进行编码,尤其是在传递日期和URL时

将代码更改为:

data: 'title='+ encodeURIComponent(title)+
      '&start='+ encodeURIComponent(start)+
      '&end='+ encodeURIComponent(end)+
      '&url='+ encodeURIComponent(url),

注意,即使这不能解决您当前的问题,您仍然应该实现此更改;) 根据请求的图像,需要在
ajax
调用中设置
数据类型:'text',

此外,在PHP中,将PDO更改为:

// "?"s here will get replaced with the array elements below
$sql = 'INSERT INTO  evenement ( title,start,end,url) VALUES( ?, ?, ?, ? )';
$stmt = $db->prepare($sql);
$stmt->execute(array($title, $start, $end, $url )); // these array elements will replace the above "?"s in this same order

// check for errors
if($stmt->errorCode() == 0) {
    $id = $db->lastInsertId(); // get the id form the inserted record, not really needed but I put it here to show you how

}
else {
    // had errors
    $errors = $stmt->errorInfo();
    print_r($errors);
}
此外,在构建数据字符串时,应始终对输入进行编码,尤其是在传递日期和URL时

将代码更改为:

data: 'title='+ encodeURIComponent(title)+
      '&start='+ encodeURIComponent(start)+
      '&end='+ encodeURIComponent(end)+
      '&url='+ encodeURIComponent(url),

注意,即使这不能解决您当前的问题,您仍然应该实现此更改;)问题1:当ajax是POST请求时,您如何在控制台中看到GET请求?关于“如何实现的任何帮助,我们将不胜感激。”使用$_POST@DeepKakkarOP使用的是$\u POST…我认为您应该使用JSON语法来设置数据。@Aukhan JSON语法使整个日历都消失了。问题1:当您的ajax是POST请求时,您如何在控制台中看到GET请求?关于“如何获得帮助,我们将不胜感激。”使用$_POST@DeepKakkarOP使用的是$\u POST…我认为您应该使用JSON语法来设置数据。@Aukhan JSON语法使整个日历消失+1,因为这是发送url参数的正确方法。OP说他在他的php脚本中看到了一个
未定义的索引
错误让我试试看!控制台错误:POST 500(内部服务器错误)@UmarAftab您能打开控制台,转到网络选项卡,点击该请求并截图请求标题和表单数据吗?好的,我刚刚做了,我现在就发布链接,因为我无法发布图像+1,因为这是发送url参数的正确方式。OP说他在他的php脚本中看到了一个
未定义的索引
错误让我试试看!控制台错误:POST 500(内部服务器错误)@UmarAftab您能打开控制台,转到网络选项卡,点击该请求并截图请求标题和表单数据吗?好的,我刚刚做了,我现在就发布链接,因为我无法发布图像