在AJAX之后调用PHP函数

当用户在我的页面上提交表单时,我使用AJAX提交信息而不刷新页面。 在用户提交信息之后,我想运行一个我已编写的PHP函数来显示信息。 这是可能的还是我需要运行另一个ajax函数来更新之后

$(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函数。

对此作出回应。

我在页面上有多个表单,可能有5个不同的ajax调用,其中不会同时调用2个,如果json更好,你有一些链接到一些阅读材料或类似于此的额外堆栈示例,所以我可以教我自己 – user934902

首先

jquery是为旧浏览器而制作的,以支持ie6不支持的基本function

如果你想在几乎所有浏览器上获得完全支持,那么使用jquery是很好的

但也有许多不好的方面:

  1. 它的81kb代码是疯了(没有插件)
  2. 与原生function相比,它非常慢。
  3. 它是由ppl使用的,他们不知道如何编写简单的javascript。
  4. 如果我们开始谈论插件,还有更多。

现在我们处在这样一个时代,大多数人都使用他们的移动设备和现代浏览器,支持标准的javascript 1.7.Android,ios,safari,Internet Explorer 10,chrome,opera和firefox支持javascript 1.7

http://caniuse.com/

这些浏览器支持下面的代码。

这是一个由我编写的ajax函数,它处理post和get

你可以在这里阅读更多关于该function的信息https://stackoverflow.com/a/18309057/2450730

  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) } // Params: // Url,callback,method,formdata or {key:val},uploadFunc,downloadFunc,placeholder 

一个简单的获取请求将是

 ajax('example.php',responseFunction); 

一个复杂的岗位function将是

 ajax('example.php',responseFunction,'post',new FormData(form),uploadFunc,dlFunc); 

你需要那个。

所以,如果你有你的表格

 
Name Surname Email File/Files

你只需要写一个这样的函数

 var form=document.getElementsById('myForm'); form.onsubmit=function(e){ e.preventDefault(); ajax('submit.php',SUCCESS,'post',new FormData(this)); } 

在这里,我们来看你的问题:

根据您的需要创建submit.php文件

 $_POST,'files'=>$_FILES,'info'=>$extrainfo,'errors'=>$err); echo json_encode($data); ?> 

这将返回一个json编码的数组,以便稍后在javascript中使用。

现在我们需要详细说明这个json。 在SUCCESSfunction中

 function SUCCESS(){ var data=JSON.parse(this.response); if(data.errors.length>0){ // you have some errors }else{ // no errors // display your response in a proper way. console.log(data); } } 

在此function中,您只需根据响应数据进行显示。

data包含您需要的一切。

这是整个代码。

复制并过去到txt文件并将其保存为submit.php 。 我现在只测试过chrome。

 $_POST,'files'=>$_FILES,'info'=>$extrainfo,'errors'=>$err); echo json_encode($data); }else{ ?>    upload    
Name Surname Email File/Files

如果该函数依赖于对submit.php整理的AJAX调用,则创建一个新的AJAX调用。 如果没有,那么只需将函数附加到submit.php并在文件末尾调用它。

您应该使用执行更新信息的ajax函数同时更新页面本身。

只需返回可用的HTML作为ajax的返回值,并将其用作页面的HTML内容。

示例:test.php

  
Enter your name :

PHP是服务器端,javascript是客户端。 如果页面已经加载,你不能从客户端调用php。

所以简单的方法是ajax

在submit.php中添加:

 echo json_encode($_POST); 

或者

我已经写过的PHP函数

……你需要的信息。

并在成功function

 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

并且成功function将为您提供所需的响应。

我添加了echo json_encode($_POST); 因为大多数时候你需要的答案/更新信息就是你刚发布的那个。