Javascript 是否可以从AjaxEvent运行PHP脚本?
我想知道,在调用AJAX事件时是否可以运行PHP文件的脚本 我在想,如果在AJAXJavascript 是否可以从AjaxEvent运行PHP脚本?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我想知道,在调用AJAX事件时是否可以运行PHP文件的脚本 我在想,如果在AJAXerror上,它会将数据发送到error.php文件并记录错误,向管理员发送电子邮件,以及我想要的任何其他通知 很明显,我可以通过javascript实现这一点,但我想知道,当已经向PHP文件发送AJAX调用时,是否可以对每个函数进行移植 $.ajax({ 方法:“张贴”, 数据:mb_ajax_form_数据, contentType:false, processData:false, 错误:函数(错误){ }
error
上,它会将数据发送到error.php
文件并记录错误,向管理员发送电子邮件,以及我想要的任何其他通知
很明显,我可以通过javascript实现这一点,但我想知道,当已经向PHP文件发送AJAX调用时,是否可以对每个函数进行移植
$.ajax({
方法:“张贴”,
数据:mb_ajax_form_数据,
contentType:false,
processData:false,
错误:函数(错误){
}
});
error.php
//发送电子邮件
邮件();
//添加到日志文件
fopen();
//等等。
你可以这样做
发布表单值的第一个函数
$(document).ready(function(){
/*Post function*/
$('#comment_form').on('submit', function(event){
event.preventDefault();
var form_data = $(this).serialize();
/*Ajax post here */
/* And second function */
myfunction();
)};
然后在这里执行第二个函数,当第一个函数成功时,它将启动第二个函数
function myfunction(){
Now it will do what you told to do, send ping back
}
)};
最简单的方法是运行XHR请求 在PHP中为错误脚本创建此文件
<?php
// Headers
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Access-Control-Allow-Headers,Content-Type,Access-Control-Allow-Methods, Authorization, X-Requested-With');
if($_POST)
{
echo json_encode($_POST);
// USE this portion if it is a success
//Note weather your data passed or failed you have to respond back to the XHR request in the front end with json_encode...
//Your PHP code
echo json_encode(
array('message' => 'Post Created')
);
}else{
echo json_encode(
array('message' => 'Post Not Created')
);
}
?>
以及调用XHR的html表单示例
<form id='theForm'>
<div id="rows">
<div class="sitting-days" style="display:flex; justify-content:center; margin-bottom:20px;">
<div class="select-date" style="margin-right:30px;">
<h4 style="text-align:center;">Select Date</h4>
<input type="date" id="house-sitting-date" name="house_sitting_date" value="">
</div>
<div class="yes-no">
<h4 style="text-align:center;">Yes/No</h4>
<select name="house_sitting_date_yes_no" id="house-yes-no" style="height:24px;">
<option value="nada" selected>Please choose an option</option>
<option value="yes">Yes</option>
</select>
</div>
</div>
</div>
<input type='button' value='Submit' id='xhrStart'>
选择日期
是/否
请选择一个选项
对
这与我们在rest API中使用的方法相同,应该有助于实现错误和脚本处理的目的Ajax是JavaScipt,那么您所说的搭载是什么意思呢?您的意思是@mplungjan添加了一些代码,希望能够澄清客户端是客户端。服务器端就是服务器端。这是否回答了您的问题?谢谢你,我使用了你的代码,还有第二个ajax函数,并将它放在了错误部分,那就是error.php文件。我刚刚发布了一个链接,检查ajax函数,你会明白我的意思。很高兴我帮了忙。我看不出有什么理由默认启用CORS,也没有什么正当的理由。。。OP询问ajax,可能是从同一个域运行代码。但是,如果他正在创建一个供许多项目使用的中心API,例如电子邮件工具或一组他将在不同系统和API中使用的类,那么最好将其放入其中,以避免整个库的重复。一些初级程序员对头函数没有很好的理解,因此将其包括在内也是很有价值的练习。
let xtart = document.getElementById('xhrStart');
xtart.addEventListener('click',function(){console.log('Xstarted')
// First iterate over the form and get all the form Values
var element = {};
var data = new FormData(theForm);
// Display the key/value pairs
for(var pair of data.entries()) {
// console.log(pair[0]+ ', '+ pair[1]);
element[ pair[0].toString() ] = pair[1];
}
console.log(element);
// Time to send the control over to PHP to do its magic
let xhr = new XMLHttpRequest();
xhr.open('POST', 'post.php');
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.responseType = 'json';
xhr.send(JSON.stringify(element));
//xhr.send();
// the response is {"message": "Hello, world!"}
xhr.onload = function() {
let responseObj = xhr.response;
alert(responseObj.message); // Hello, world!
};
});
<form id='theForm'>
<div id="rows">
<div class="sitting-days" style="display:flex; justify-content:center; margin-bottom:20px;">
<div class="select-date" style="margin-right:30px;">
<h4 style="text-align:center;">Select Date</h4>
<input type="date" id="house-sitting-date" name="house_sitting_date" value="">
</div>
<div class="yes-no">
<h4 style="text-align:center;">Yes/No</h4>
<select name="house_sitting_date_yes_no" id="house-yes-no" style="height:24px;">
<option value="nada" selected>Please choose an option</option>
<option value="yes">Yes</option>
</select>
</div>
</div>
</div>
<input type='button' value='Submit' id='xhrStart'>