2015-12-09 2 views
0
 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 } 
      ] 
     }); 

У меня есть строка кода (выше), в которой я создаю таблицу, которая содержит информацию. В строке, которая говорит «// отправьте почтовый запрос», я пытаюсь сделать так, чтобы кнопка прямо над ним отправила почтовый запрос в отдельный файл под названием «extra.php», и, несмотря на то, что я сделал, это удалось.JavaScript - Отправка запроса на отправку элемента PHP

Я пробовал использовать кнопку отправки в форме ввода, но это не сработало. Я пробовал много разных вещей, но я не могу заставить его работать. Любая помощь будет оценена по достоинству.

Существует уже файл (extra.php), который способен получать почтовый запрос и действовать на него, как только он его получил. Я пытаюсь создать кнопку в HTML на странице, чтобы при нажатии «утверждать_реквест» сообщения в файл «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","[email protected]"); 
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 { 
} 

Это раздел, ответственный за обработку почтового запроса, если это помогает.

+0

Вы открыли свой отладчик, чтобы увидеть, какие ошибки вы получаете? Если да, то какие ошибки? – Victory

ответ

0

Я думаю, что вам не хватает этого:

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

DataTabele нужны эти директивы, чтобы знать, что вы хотите выполнить запрос к PHP скрипт.

А может быть, также это:

"ajax": "your php.php" 
0

Удалить учетные данные базы данных из этого поста немедленно.

У вашего исходного кода не должно быть никакого 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/

Смежные вопросы