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", и, несмотря на то, что я сделал, это удалось.
Я попытался использовать кнопку отправки в форме ввода, но это не сработало. Я пробовал много разных вещей, но я не могу заставить его работать. Любая помощь будет оценена по достоинству.
Уже есть файл (extra.php), который способен получать почтовый запрос и действовать на него, как только он его получил. Я пытаюсь создать кнопку в HTML на странице, чтобы при нажатии "approve_request posts" на файл "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 {
}
Это раздел, отвечающий за обработку почтового запроса, если это помогает.
Прежде всего, некоторые браузеры блокируют отправку запросов с помощью JS, поэтому добавьте это поверх своего PHP-кода
header('Access-Control-Allow-Origin: *');
Теперь вы можете отправить запрос без проблем.
$.post(url ,{
postItem1 : postValue1,
postItem2: postValue2
//You have to define postItem1 and 2 in your PHP code -> $_POST["postItem1"] -> this will return postValue1
}, function(data, status){
//success
}).fail(function() {
//failed
});
<form method="post" action="extra.pgp"><input type="submit" name="submit" value="submit"></form>
, если ваш js работает хорошо, я должен признать, что ваш запрос ajax вне меня !!