从JavaScript调用php函数

从JavaScript调用php函数,第1张

从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!';?>

试试看: http :
//jsfiddle.net/GRMule/m8CTk/


带有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;}

试试看: http :
//jsfiddle.net/GRMule/WQXXT/

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

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

文献资料

  • __MDN上的 AJAX - https://developer.mozilla.org/en/ajax
  • XMLHttpRequest
    在MDN上-https: //developer.mozilla.org/en/XMLHttpRequest
  • XMLHttpRequest
    在MSDN上-http: //msdn.microsoft.com/en-us/library/ie/ms535874%28v=vs.85%29.aspx
  • jQuery- http://jquery.com/download/
  • jQuery.ajax
    - http://api.jquery.com/jQuery.ajax/


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5602343.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存