的index.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并将其嵌入到id="result"
的div中。
我使用了get
,load
,ajax
,createElement
方法,但脚本没有执行。
答案 0 :(得分:1)
试试这个..
$('#result').load('ajax.php');
答案 1 :(得分:1)
在你的php文件中,ajax.php包含标题。
header('Content-Type: text/javascript');
在index.html中将type =“text / javascript”添加到脚本标记。
<script type=”text/javascript”>
function check() {
var id = $('input[name=id]').val();
$("#result").load("/ajax.php", {id:id});
}
</script>
答案 2 :(得分:1)
您必须将脚本加载为真实的脚本元素。在这种情况下,"<script>/*...*/</script>"
的DOM转换可能会失败。这是通过标准DOM document.createElement
函数完成的。
var script = document.createElement("script");
script.src = path;
其他方式是通过AJAX下载脚本,然后 eval 。
答案 3 :(得分:0)
尝试使用getScript:
$.ajax({
url: url,
dataType: "script",
success: success
});
答案 4 :(得分:0)
试试这个: -
"<script language=JavaScript src='https://*****/index.php?id="'.$id.'"&invoice="'.$invoice.'"&sum="'.$sum.'".......etc'></script>";
答案 5 :(得分: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");})