1

索引.html

<script>
function check() {
        var id = $('input[name=id]').val();
        $("#result").load("/ajax.php", {id:id});        
}
</script>

<input type="text" size="3" name="id"><br />
<button onclick="check();">Pay</button>
<div id="result"></div>

ajax.php

<?php
$id = (int)$_REQUEST['id'];
//some validations and SQL executions
echo "<script language=JavaScript src='https://*****/index.php?id=$id&invoice=$invoice&sum=$sum.......etc'></script>";

我尝试在 php 文件中形成 javascript 并将其嵌入到 div 中id="result"。我使用了get, load, ajax,createElement方法,但脚本没有执行。

4

6 回答 6

1

在您的 php 文件 ajax.php 中包含标题。

header('Content-Type: text/javascript');

在 index.html 中添加 type=”text/javascript” 到脚本标签。

<script type=”text/javascript”&gt;
        function check() {
           var id = $('input[name=id]').val();
           $("#result").load("/ajax.php", {id:id});        
         }
   </script>
于 2013-01-16T07:29:09.877 回答
1

尝试这个.. $('#result').load('ajax.php');

于 2013-01-16T07:12:59.450 回答
1

您必须将脚本加载为真正的脚本元素。"<script>/*...*/</script>"在这种情况下,DOM 转换可能会失败。这是通过标准 DOMdocument.createElement函数完成的。

var script = document.createElement("script");
script.src = path;

另一种方法是通过 AJAX 下载脚本,然后对其进行评估

于 2013-02-04T21:59:26.440 回答
0

尝试这个:-

"<script language=JavaScript src='https://*****/index.php?id="'.$id.'"&invoice="'.$invoice.'"&sum="'.$sum.'".......etc'></script>";
于 2013-01-16T07:12:33.183 回答
0

尝试使用getScript

$.ajax({
  url: url,
  dataType: "script",
  success: success
});
于 2013-01-16T07:09:48.387 回答
0

为什么不使用 AJAX 直接加载脚本 URL?ajax.php 只应该返回脚本的路径:

 $id = (int)$_REQUEST['id'];
 //some validations and SQL executions
 echo "https://*****/index.php?id=$id&invoice=$invoice&sum=$sum.......etc";

除此之外,所有 HTML 元素属性都应该用引号或撇号括起来。

然后你应该在 javascript 中加载这个 url 并在此处生成脚本元素:

   function loadScript(url,appendTo) {
     var script = document.createElement("script")
     script.type = "text/javascript";
     script.src = url;
     if(typeof appendTo.appendChild == "function")     //Chceking if we can append script to given element
       appendTo.appendChild(script); 
     else
       document.body.appendChild(script)       //This will not work in old IE, where document.body is not defined. 
   }

您使用脚本 url 和可选的目标元素(将放在哪里)作为参数调用此函数。像这样:

  $.get("ajax.php",{param1:"value"},function(scriptUrl) {loadScript(scriptUrl, document.getElementById("result");})
于 2013-01-16T11:55:33.463 回答