1

我根本没有找到明确的答案。我一直在寻找一两个小时。

我有一个 PHP 页面进行 SQL 调用并构建我的页面。我有一个带有触发页面附加事件的 onClick JavaScript 函数的项目列表。除其他事项外,我需要使用 onClick 函数在 HTML 页面中附加额外的 PHP 代码。我一直希望通过包含附加到 PHP 文件中,但使用这个 JS 函数似乎无法使用。

想法将是最有帮助的。如果您可以通过代码参考或现有教程来支持您的答案,那将是非常棒的。

4

4 回答 4

4

JavaScript 是在客户端浏览器中执行的代码,PHP 是在服务器上执行的代码。试图从 JavaScript 输出 PHP 将永远不会成功。

如果您希望通过 JavaScript 触发 PHP 代码,您可以向服务器上的 PHP 文件发出XML Http 请求。

于 2012-06-27T20:25:36.243 回答
3

您可以使用 JQuery+Ajax 加载外部文件,然后只附加元素,例如:

// when the page loads
$(document).ready(function () {
    $.ajax({
      url: "test.html",
      cache: false
    }).done(function( html ) {
      $("#results").append(html);
    });
});

或者

// when the an element is clicked
$(document).ready(function () {
  $.fn.appendElement = function (){
    $.ajax({
      url: "test.html",
      cache: false
    }).done(function( html ) {
      $("#results").append(html);
    });
  }
});

$('#buttonId').click(function(){ $(this).appendElement(); });

高温高压

于 2012-06-27T20:28:17.430 回答
1

使用 AJAX,使用 jQuery 你可以这样做:

$.get('test.php', function(data) {
  $("#MyDiv").html(data);
});

这会将“test.php”生成的内容插入到<div id="MyDiv">.

行。你不想要 jQuery ......上面使用纯 javascript 相同:

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;  
}

function $(id) { return document.getElementById(id); }

function AJAX_GetAsinc(ajax, id, url) {
  ajax.abort();
  function statechange() {
    if ((ajax.readyState==4) && (ajax.status==200)) $(id).innerHTML=ajax.responseText;
  }
  ajax.open('GET', url, true);
  ajax.onreadystatechange = statechange;
  ajax.send(null);
}

var ajax = getHTTPObject();

AJAX_GetAsinc(ajax, 'MyDiv', 'test.php'); // This loads the content

哦,是的......这不那么令人困惑:S

于 2012-06-27T20:26:24.980 回答
1

使用 ajax 是解决方案。:) ajax(异步 JavaScript 和 XML)所做的是运行外部 php 页面并动态返回其结果而无需重新加载页面。:)

当然,另一种解决方案是将您的 html 文件放在 .php 中,然后只回显您要添加的 php。

于 2012-06-27T20:28:57.823 回答