簡體   English   中英

JavaScript-將發布請求發送到PHP元素

[英]JavaScript - Sending a post request to a PHP element

        var table = $('#accessRequest').DataTable({
            "dom": 'Blfrtip',
            "ajax": "Editor-PHP-1.5.1/php/editor-serverside.php",
            "columns": [
                {   //special column for detail view
                    "className": 'details-control',
                    "orderable": false,
                    "data": null,
                    "defaultContent": ''
                },
                {   data: "DT_RowId",
                    render: function ( data ) {
                        return data.replace( 'row_', '' );
                    }
                },
                {   data: null,
                    render: function ( data, type, row ) {
                        // Combine the first and last names into a single table field
                        return data.first+' '+data.last;
                    }
                },
                { "data": "phone" },
                { "data": "responsibleParty" },
                { "data": "email" },
                { "data": "building" },
                { "data": "typeOfWork" },
                { "data": "startTime" },
                { "data": "endTime" },
                { "data": "description" },
                { "data": "dockNeeded" },
                { "data": "numPeople" },
                { "data": "numTrucks" },
                { "data": "requestPlaced" },
                { "data": "updatedAt" },
                { "data": "approved" },
                { "data": "approvedBy" },
                { "data": "approvedAt" },
                { "data": null }
            ],
            "aoColumnDefs": [
                {
                    "aTargets": [-1],
                    "mData": null,
                    "mRender": function (data, type, full) {
                    return '<button id="ApprovalButton" onclick="$.post(\'extra.php\', \'approve_request\')" action="extra.php" method="post"> Process </button>';
                 //Send post request
                    }
                }
            ],
            "order": [[1, 'asc']],
            select: true,
            buttons: [
                { extend: "create", editor: editor },
                { extend: "edit",   editor: editor },
                { extend: "remove", editor: editor }
            ]
        });

我有一串代碼(上面),在其中創建了一個包含信息的表。 在說“ // send post request”的行上,我正在嘗試使它的上方的按鈕將一個post請求發送到一個名為“ extra.php”的單獨文件中,盡管我做了什么,但我沒有做過無法做到這一點。

我嘗試在輸入表單中使用提交按鈕,但這沒有用。 我嘗試了很多不同的方法,但似乎無法使其正常工作。 任何幫助,將不勝感激。

已經存在一個文件(extra.php),該文件能夠接收發布請求並在收到請求后對其執行操作。 我試圖在頁面上的HTML中創建一個按鈕,當單擊該按鈕時,將“ approve_request”發布到文件“ extra.php”

抱歉,我對編碼和這個網站都是陌生的,可能有些簡單的事情我沒有做。

    <!DOCTYPE html>
<html>
<head>
</head>
<body>

<?php
header('Access-Control-Allow-Origin: *'); 
$id = intval($_POST['id']);

$con = mysql_connect("RequestAccess.db.10160035.hostedresource.com","RequestAccess","br@6HeCher");
if (!$con){
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("RequestAccess", $con);

//if action sent is approve set request as apporved
if(isset($_POST['approve_request'])){
    $sql = "UPDATE AccessRequests
            SET approved='1', approvedAt=current_timestamp
            WHERE AccessID='" . $_POST['approve_request']."'";

    $results = mysql_query($sql);
}
//else action sent must be for child rows so populate child row
else {
}

如果有幫助,這是負責處理郵寄請求的部分。

我認為您缺少此功能:

"processing": true,
"serverSide": true,

DataTabele需要這些指令才能知道您要執行對php腳本的請求。

也許也是這樣:

"ajax": "your php.php"

立即從此帖子中刪除您的數據庫憑據。

您的后端腳本不應與任何HTML關聯。 如果已經輸出到DOM,則無法返回標頭。

文檔: http : //php.net/manual/en/function.header.php

對於數據表,您將需要從后端腳本返回json。 它看起來應該像這樣。 假設您的SQL和架構正確。

<?php
//Use PDO this is deprecated.
$con = mysql_connect("stuff","things","password");
if (!$con){
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("RequestAccess", $con);

$id = (int) $_POST['id'];
if(isset($_POST['approve_request'])){
    $sql = "
    UPDATE AccessRequests
    SET approved='1', approvedAt=current_timestamp -- this may need to be in quotes.
    WHERE AccessID='{$_POST['approve_request']}' 
    ";

    $results = mysql_query($sql);
} else {
    $results = null;
}

//Set headers 
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');

//Output data.
echo json_encode($results);

我使用一個程序調試我的ajax請求。 Firebug是一個不錯的選擇。

我強烈建議您首先學習一個框架(防護欄很好)。

http://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM