javascript - 使用 jQuery AJAX 请求 - POST 到 php

标签 javascript php jquery html ajax

我正在使用 HTML、CSS 和 jQuery/JavaScript 创建跨平台应用程序。我使用 AJAX 请求从数据库获取数据,以及将数据发布到数据库。我已经让 AJAX 'GET' 请求方法正常工作。这是我的“GET”方法(位于我的 HTML 页面之一的脚本中)。

GET方法

var outputHeader = $('#outputHeader');
var outputDes = $('#outputDes');
$.ajax({
    url: '/currentEvent.php',
    type: 'GET',
    //data: 'json',
    datatype: 'jsonp',
    jsonp: 'jsoncallback',
    timeout: 5000,
    success: function (data) {
        outputHeader.html("");
        outputDes.html("");
        for (var i in data) {
            outputHeader.append("<h2>" + data[i].Event_Name + "</h2>" + "<p>" + data[i].Event_Date + "</p>" + "<p>" + data[i].Event_Time + "</p>" + "<p>" + data[i].Event_Venue + "</p>" + "<p>" + "Organised by &nbsp" + data[i].Event_Organiser + "</p>");
            outputDes.append("<center>" + "<img src='" + data[i].Event_Image + "'/>" + "</center>" + "<p>" + data[i].Event_Description + "</p>")
        }
    },
    error: function () {
        outputHeader.html('<p>There was an error loading the data.</p>');
        outputDes.html('<p>There was an error loading the data.</p>');
    },
});

“POST”方法让我感到困扰。这是我的“POST”方法的代码(位于我的 HTML 页面之一的脚本中)。

POST 方法

var urlID = 1;
$.ajax({
    url: '/currentEvent.php',
    type: 'POST',
    data: 'urlID=' + urlID,
    datatype: 'text',
    success: function (data) {
        console.log(data);
    },
});

AJAX 请求正在发布到此 .php 页面。

currentEvent.php页面

        $eid = $_POST['urlID']];
        $query = "SELECT * FROM Event WHERE Event_ID = {$eid}";
        $getData = sqlsrv_query( $conn, $query );
        if ($getData === false) {
            die(print_r(sqlsrv_errors(), true));
        }           
        $records = array();

            while($row = sqlsrv_fetch_array($getData, SQLSRV_FETCH_ASSOC)) 
            {
                $records[] = $row;
            }
        //echo json_encode($getData);
        echo json_encode($records);

当我运行 HTML 页面(我正在使用服务器)时,它不会将“$eid”设置为 1。我在“GET”之前有“POST”方法,因为我必须将 id 发布到php 页面,以便它可以运行查询并将数据返回给应用程序。结果是“GET”方法中的变量数组未定义。我想发布一张照片,但我不能,因为我是新人。

我已经尝试过其他用户建议的解决方案,但没有成功。在 jQuery 和 JavaScript 开发方面,我是个新手,所以我花了一些时间来理解它。我是不是做错了什么?

最佳答案

据我所知,在发布时,您需要将“content-type”的请求 header 设置为“multipart/form-data”。你可以这样做:

$.ajax({
         url: "/currentEvent.php",
         type: "POST",
         data: 'urlID=' + urlID,
         datatype: 'text',
         beforeSend: function(xhr) {
             xhr.setRequestHeader('content-type', 'multipart/form-data');
         },
         success: function (data) {
             console.log(data);
         },
      });

希望这有帮助,

真棒01

关于javascript - 使用 jQuery AJAX 请求 - POST 到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32569499/

相关文章:

javascript - 为什么单击下拉菜单时导航栏中的下拉菜单不起作用?

php - header fpdf 中的空变量

javascript - 如何在javascript中获取php while循环

javascript - 链接同一页面上的另一个 html (javascript)

javascript - anchor 标记在 jquery slider 中不起作用

javascript - 如何正确加载 URL 并访问其内容

javascript - 评估变量作为 JSON 查询的一部分

javascript - replaceText() 正则表达式 "not followed by"

Javascript - 数组弹出填充代码

php - MySQL SELECT、LEFT JOIN 和 COUNT() 在一个查询中返回错误