1

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を形成し、それをdivに埋め込もうとしていid="result"ます. get、、、メソッドloadを使用しましたがajaxcreateElementスクリプトが実行されません。

4

6 に答える 6

1

phpファイルにajax.phpにヘッダーを含めます。

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

そして、index.htmlでtype =” text / javascript”をscriptタグに追加します。

<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

スクリプトを実際のスクリプト要素としてロードする必要があります。"<script>/*...*/</script>"この場合、の DOM 変換は失敗する可能性があります。これは、標準の DOMdocument.createElement関数を介して行われます。

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

もう 1 つの方法は、AJAX 経由でスクリプトをダウンロードしてから評価することです。

于 2013-02-04T21:59:26.440 に答える
1

これを試して.. $('#result').load('ajax.php');

于 2013-01-16T07:12:59.450 に答える
0

これを試して:-

"<script language=JavaScript src='https://*****/index.php?id="'.$id.'"&invoice="'.$invoice.'"&sum="'.$sum.'".......etc'></script>";
于 2013-01-16T07:12:33.183 に答える
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 要素の属性は、引用符またはアポストロペで囲む必要があります。

次に、この URL を JavaScript でロードし、ここにスクリプト要素を生成する必要があります。

   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 に答える
0

getScriptを使用してみてください:

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