Javascript 在AJAX之后调用PHP函数
当用户在我的页面上提交表单时,我使用AJAX提交信息而不刷新页面。在用户提交信息之后,我想运行一个我已经编写的显示信息的PHP函数。这是可能的,还是需要运行另一个ajax函数来更新Javascript 在AJAX之后调用PHP函数,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,当用户在我的页面上提交表单时,我使用AJAX提交信息而不刷新页面。在用户提交信息之后,我想运行一个我已经编写的显示信息的PHP函数。这是可能的,还是需要运行另一个ajax函数来更新 $(function () { $('add').on('submit', function (e) { $.ajax({ type: 'post', url: 'submit.php', data: $
$(function () {
$('add').on('submit', function (e) {
$.ajax({
type: 'post',
url: 'submit.php',
data: $('this').serialize(),
success: function () {
alert('form was submitted');
}
});
e.preventDefault();
updateWords(); //PHP FUNCTION
});
});
第一次调用成功后,您需要运行另一个AJAX调用
JavaScript不能直接与PHP交互,因此不能从AJAX调用的success/complete函数调用PHP函数。第一次调用成功后,需要运行另一个AJAX调用
JavaScript不能直接与PHP交互,因此不能从AJAX调用的success/complete函数调用PHP函数。PHP是服务器端,JavaScript是客户端。 如果页面已加载,则无法从客户端调用php 所以简单的方法是ajax 在submit.php中添加:
echo json_encode($_POST);
或者
我已经写过的PHP函数
。。。你所需要的信息
在成功函数中
success: function () {
// i don't use jquery but the response contains the json string
console.log('the words you wanna update:',JSON.parse(response));
// updateWords(JSON.parse(response));
}
编辑
您也不需要一个以上的ajax函数
您说您已经编写了一个脚本来向客户端显示下一个信息
将该脚本添加到submit.php
“成功”功能将为您提供所需的响应
我添加了echo
json\u编码($\u POST)代码>因为大多数情况下,您需要的答案/更新信息都是您刚刚发布的信息。PHP是服务器端,javascript是客户端。
如果页面已加载,则无法从客户端调用php
所以简单的方法是ajax
在submit.php中添加:
echo json_encode($_POST);
或者
我已经写过的PHP函数
。。。你所需要的信息
在成功函数中
success: function () {
// i don't use jquery but the response contains the json string
console.log('the words you wanna update:',JSON.parse(response));
// updateWords(JSON.parse(response));
}
编辑
您也不需要一个以上的ajax函数
您说您已经编写了一个脚本来向客户端显示下一个信息
将该脚本添加到submit.php
“成功”功能将为您提供所需的响应
我添加了echojson\u编码($\u POST)
因为大多数时候,您需要的答案/更新信息都是您刚刚发布的信息。如果函数依赖于对submit.php
finishing的AJAX调用,那么创建一个新的AJAX调用。如果没有,则只需将函数附加到submit.php,并在文件末尾调用它。如果函数依赖于对submit.php
finishing的AJAX调用,则创建一个新的AJAX调用。如果没有,那么只需将函数附加到submit.php并在文件末尾调用它。您应该使用执行更新信息的ajax函数来同时更新页面本身
只需返回可用的HTML作为ajax的返回,并将其用作页面的HTML内容
示例:test.php
<script>
function updateName() {
var url = './test.php?inpName=' + $('#inpName').val();
$.get( url, function( data ) {
$( "#frmDivUpdate" ).html( data );
alert( "Call was performed." );
});
}
</script>
<div id="frmDivUpdate">
<form>
Enter your name : <input name="inpName" id="inpName">
<br>
<input type="button" onClick="updateName();" value="Update">
</form>
</div>
<?php
if (isset($_GET))
{
$inpName = $_GET["inpName"];
echo "You updated your val to $inpName";
}
?>
函数updateName(){
var url='./test.php?inpName='+$('#inpName').val();
$.get(url、函数(数据){
$(“#frmDivUpdate”).html(数据);
警报(“已执行呼叫”);
});
}
输入您的姓名:
您应该使用执行更新信息的ajax函数来同时更新页面本身
只需返回可用的HTML作为ajax的返回,并将其用作页面的HTML内容
示例:test.php
<script>
function updateName() {
var url = './test.php?inpName=' + $('#inpName').val();
$.get( url, function( data ) {
$( "#frmDivUpdate" ).html( data );
alert( "Call was performed." );
});
}
</script>
<div id="frmDivUpdate">
<form>
Enter your name : <input name="inpName" id="inpName">
<br>
<input type="button" onClick="updateName();" value="Update">
</form>
</div>
<?php
if (isset($_GET))
{
$inpName = $_GET["inpName"];
echo "You updated your val to $inpName";
}
?>
函数updateName(){
var url='./test.php?inpName='+$('#inpName').val();
$.get(url、函数(数据){
$(“#frmDivUpdate”).html(数据);
警报(“已执行呼叫”);
});
}
输入您的姓名:
作为对此的回应
我在页面上有多个表单,可能有5个不同的ajax调用
如果json更好,则不会同时调用超过2个
你是否有一些阅读材料或附加堆栈的链接
示例与此类似,因此我可以自学–user934902
首先
jquery是为旧浏览器设计的,以支持ie6不支持的基本功能
如果您希望在几乎所有浏览器上都获得完全支持,那么jquery的使用是很好的
但也有许多不好的方面:
它的81kb代码是疯狂的(没有插件)
与本机函数相比,它非常慢
它被不知道如何编写简单javascript的ppl使用
如果我们开始讨论插件的话,情况会更糟
现在我们正处在一个大多数ppl使用移动设备和现代浏览器的时代
支持标准javascript 1.7。Android、ios、safari、internet explorer 10、chrome、opera和firefox支持javascript 1.7
这些浏览器支持下面的代码
这是我写的一个ajax函数,它处理post&get
您可以在此处阅读有关该函数的更多信息
一个简单的get请求是
ajax('example.php',responseFunction);
一个复杂的post函数将是
ajax('example.php',responseFunction,'post',new FormData(form),uploadFunc,dlFunc);
你需要这个
如果你有你的表格
<form id="myForm">
<input name="name"> Name
<input name="surname"> Surname
<input name="mail"> Email
<input name="file" type="file" multiple> File/Files
</form>
现在我们来回答你的问题:
根据需要创建submit.php文件
<?php
// do whatever you need with the posted info
// copy files to a specific folder
// insert/update/delete the database
// check for errors
// lets say no errors
$err=array();
// load extra info from database to an array called $extrainfo
// load some functions... (you can do what you want here)
// like executing the function you have already written and add that info to
// the $extrainfo.
$extrainfo=array('updated correctly','files copied');
$data=array('post'=>$_POST,'files'=>$_FILES,'info'=>$extrainfo,'errors'=>$err);
echo json_encode($data);
?>
在这个函数中,您只需要根据响应数据进行显示
数据
包含您需要的一切
这是全部代码
复制并通过一个txt文件,并将其另存为submit.php
。
我现在只测试了chrome
<?php
if($_POST){
$err=array();
$extrainfo=array('updated correctly','files copied');
$data=array('post'=>$_POST,'files'=>$_FILES,'info'=>$extrainfo,'errors'=>$err);
echo json_encode($data);
}else{
?><!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>upload</title>
<script>
var form,result;
function ajax(a,b,e,d,f,g,c){
c=new XMLHttpRequest;
!f||(c.upload.onprogress=f);
!g||(c.onprogress=g);
c.onload=b;
c.open(e||'get',a);
c.send(d||null)
}
function SUCCESS(){
console.log(JSON.parse(this.response));
var data=JSON.parse(this.response);
if(data.errors.length>0){
result.textContent='you have some errors:'+data.errors[0];
}else{
result.textContent=JSON.stringify(data, null, '\t');
}
}
window.onload=function(){
form=document.getElementById('myForm');
result=document.getElementById('response');
form.onsubmit=function(e){
e.preventDefault();
ajax('submit.php',SUCCESS,'post',new FormData(this));
}
}
</script>
</head>
<body>
<form id="myForm">
<input name="name"> Name
<input name="surname"> Surname
<input name="mail"> Email
<input name="file[]" type="file" multiple> File/Files
<input type="submit" value="send">
</form>
<pre id="response"></pre>
</body>
</html>
<?php
}
?>
上传
var形式、结果;
函数ajax(a、b、e、d、f、g、c){
c=新的XMLHttpRequest;
!f | |(c.upload.onprogress=f);
!g | |(c.onprogress=g);
c、 空载=b;
c、 打开(e | | get',a);
c、 发送(d | |空)
}
函数成功(){
log(JSON.parse(this.response));
var data=JSON.parse(this.response);
if(data.errors.length>0){
result.textContent='您有一些错误:'+data.errors[0];
}否则{
result.textContent=JSON.stringify(数据,null,“\t”);
}
}
window.onload=function(){
form=document.getElementById('myForm');