2011-06-23 9 views
0

どうすればこの問題を解決できますか?私はこのようなPHPファイルをロードしたい:PHPファイルをdocument.createElement()でロードする

  • ボタンをクリックします。
  • Javascript関数を呼び出します。
  • Javascript機能では、src file.phpでimgを作成します。

これは、PHPの読み込みを強制する必要があります。ここにコードがあります。

<script type="text/javascript"> 
var d; 

function callSave() { 
alert ('calling'); 
if (d) document.body.removeChild(d); 
// d = document.createElement("script"); 
d = document.createElement("img"); 
d.src = "savepages.php"; 
//d.type = "text/javascript"; 
document.body.appendChild(d); 
} 

</script> 

はその後savepages.phpに私はPHPが呼ばれていることを確認するために別のアラートを行うと、そうではありません。ここにはsavepages.phpがあります。

<?php 
echo "alert('from the php');"; 
?> 

PHPからの警告は発生しません。 PHPの読み込みを強制する別の要素型がありますか?私はajaxをインストールしていないので、このような回避策が必要です。

ありがとうございました。

+2

なぜ、あなたの究極の目標は何ですか? –

+0

イメージのために提供しているソース内でアラートを呼び出すことはできません。画像だけが必要な場合、PHPは適切なヘッダを設定し、画像データのみを返す必要があります。 – scunliffe

+0

iframeはどうですか? – Martine

答えて

0

を使用することができます。フォーム・イベントからjavascript関数を呼び出す方法と、そのjavascript関数からPHPファイルをロードする方法を説明する簡単なコードがあります。 http://daniel.lorch.cc/docs/ajax_simple/で見つけたコードもここに与えられます。

<script type="text/javascript"> 
var http = false; 

if(navigator.appName == "Microsoft Internet Explorer") { 
    http = new ActiveXObject("Microsoft.XMLHTTP"); 
} else { 
    http = new XMLHttpRequest(); 
} 

function validate(user) { 
    http.abort(); 
    http.open("GET", "validate.php?name=" + user, true); 
    http.onreadystatechange=function() { 
    if(http.readyState == 4) { 
     document.getElementById('msg').innerHTML = http.responseText; 
    } 
    } 
    http.send(null); 
} 
</script> 

<h1>Please choose your username:</h1> 

<form> 
    <input type="text" onkeyup="validate(this.value)" /> 
    <div id="msg"></div> 
</form> 

Validate.phpと

<?php 
function validate($name) { 
    if($name == '') { 
    return ''; 
    } 

    if(strlen($name) < 3) { 
    return "<span id=\"warn\">Username too short</span>\n"; 
    } 

    switch($name) { 
    case 'bob': 
    case 'jim': 
    case 'joe': 
    case 'carol': 
     return "<span id=\"warn\">Username already taken</span>\n"; 
    } 

    return "<span id=\"notice\">Username ok!</span>\n"; 
} 

echo validate(trim($_REQUEST['name'])); 
?> 
+0

もう1つの方法は、PHPファイルをaction

...
。フォームが送信されると、ファイルsavepages.phpが呼び出されます。 – Martine

0

あなたがこれを処理するためのより良い方法を見つけたiframe要素

<script type="text/javascript"> 
var d; 

function callSave() { 
alert ('calling'); 
if (d) document.body.removeChild(d); 
d = document.createElement("iframe"); 
d.src = "savepages.php"; 
document.body.appendChild(d); 
} 

</script> 
+0

これは意味がありますが、これはPHPの警告を呼び出さない。 – Martine

+0

iframeがより適切であるように見えます。 PHPがなぜ呼び出されないのかを説明することができるこのコードで他に何が間違っているのかも知っていますか?もう私はそこから警報を出そうとしない。私はテキストエコーをやろうとします。 savepages.phpは次のようになりました。 <?php echo "from the savepages php"; ?> – Martine

関連する問題