栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从JavaScript调用php函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从JavaScript调用php函数

本质上,这就是AJAX的作用。页面加载,然后将事件添加到元素。当用户导致事件被触发时(例如,单击某些内容),您的Javascript使用XMLHttpRequest对象将请求发送到服务器。

服务器响应后(大概带有输出),另一个Javascript函数/事件为您提供了处理该输出的位置,包括像其他HTML片段一样简单地将其粘贴到页面中。

您可以使用纯Javascript“手动”完成操作,也可以使用jQuery。根据项目的大小和特定情况,仅使用普通Javascript可能会更简单。

纯Javascript

在这个非常基本的示例中,

myAjax.php
当用户单击链接时,我们向其发送请求。服务器将生成一些内容,在本例中为“ hello
world!”。我们将把带有id的HTML元素放入
output

Javascript

// handles the click event for link 1, sends the queryfunction getOutput() {  getRequest(      'myAjax.php', // URL for the PHP file       drawOutput,  // handle successful request       drawError    // handle error  );  return false;}  // handles drawing an error messagefunction drawError() {    var container = document.getElementById('output');    container.innerHTML = 'Bummer: there was an error!';}// handles the response, adds the htmlfunction drawOutput(responseText) {    var container = document.getElementById('output');    container.innerHTML = responseText;}// helper function for cross-browser request objectfunction getRequest(url, success, error) {    var req = false;    try{        // most browsers        req = new XMLHttpRequest();    } catch (e){        // IE        try{ req = new ActiveXObject("Msxml2.XMLHTTP");        } catch(e) { // try an older version try{     req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {     return false; }        }    }    if (!req) return false;    if (typeof success != 'function') success = function () {};    if (typeof error!= 'function') error = function () {};    req.onreadystatechange = function(){        if(req.readyState == 4) { return req.status === 200 ?      success(req.responseText) : error(req.status);        }    }    req.open("GET", url, true);    req.send(null);    return req;}

HTML

<a href="#" onclick="return getOutput();"> test </a><div id="output">waiting for action</div>

的PHP

// file myAjax.php<?php  echo 'hello world!';?>

带有javascript库(jQuery等)

可以说,这是很多Javascript代码。当然,您可以通过拉紧这些块或使用更多简洁的逻辑运算符来缩短该时间,但是仍然有很多事情要做。如果您打算在项目中做很多这类事情,那么使用javascript库可能会更好。

使用上面相同的HTML和PHP,这就是您的整个脚本(页面上包含jQuery)。为了使它与jQuery的通用样式更加一致,我对代码进行了一些收紧,但是您可以理解:

// handles the click event, sends the queryfunction getOutput() {   $.ajax({      url:'myAjax.php',      complete: function (response) {          $('#output').html(response.responseText);      },      error: function () {          $('#output').html('Bummer: there was an error!');      }  });  return false;}

暂时不要急于使用jQuery:添加任何库仍在向项目中添加数百或数千行代码,就像您已经编写了代码一样。在jQuery库文件中,您将找到与第一个示例类似的代码,以及更多其他代码。那可能是一件好事,可能不是。计划并考虑项目的当前规模以及将来的扩展可能性以及目标环境或平台。

如果这是您需要做的全部工作,请编写一次简单的javascript,然后就完成了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/405005.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号