在java脚本中调用php的替代方法

Alternative to call php in java script?

本文关键字:方法 php 调用 java 脚本      更新时间:2023-09-26

我想在java脚本中调用php

我读到这是被禁止的:

document.getElementById('id1').innerHTML="<?php include my.php?>";

如果我不能这样做,我怎么能加载一个php页面内容与id1div点击li:

<ul>
 <li onclick="javascriptFunction()">
 <li>
 <li>
</ul>
<div id="id1"></div>

有两种方法可以达到这个目标。

与其说你想做的事是被禁止的,不如说是根本不可能的。

选项1

使用ajax调用PHP代码。在ajax调用的回调中,填写innerHTML.

选项2

使用模板

<script type="text/html" id="template-id1">
  <?php include my.php?>
</script>

<li onclick="setDiv()">
<script>
  function setDiv() {
    document.getElementById('id1').innerHTML =
      document.getElementById("template-id1").innerHTML;
  }
</script>

您可以使用AJAX (http://en.wikipedia.org/wiki/Ajax)。

使用jQuery (http://api.jquery.com/jquery.ajax/)这样的库,你会得到这样的代码:
$.ajax('my.php')
    .done(function(response) {
         $('#id1').html(response);
    })

当然,这是可行的,没有任何库,如jQuery,但只需要一点代码。

我不知道为什么会被禁止。这叫做自引导。

但如果你必须:

my.php

echo 'whatever';

然后在<script>标记中,使用$。使用Ajax调用my.php,并用响应填充相应的元素。

ready function:

function javascriptFunction () {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            document.getElementById("id1").innerHTML = xhr.responseText;
        }
    }
    xhr.open('GET', 'my.php', true);
    xhr.send();
}

你需要使用ajax,如果你不想使用库试试这个:

var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
request.onreadystatechange=function() {
    if (request.readyState == 4 && request.status == 200) {
        document.getElementById("id1").innerHTML=request.responseText;
    }
};
request.open("GET","my.php",true);
request.send();

或者你可以隐藏div,然后当你点击链接时,让它可见。

<div id='id1' style='display:none;'>
    your content
</div>
function javascriptFunction() {
    document.getElementById('id1').style.display = 'block';
}