2011-08-15 7 views
-1

でPHPの関数を適用するためにどのように私は私が書いたスクリプトはJavaScriptとPHPの両方を使用しようとしていることに気づき、これは動作しません。誰かが私が探していることを達成する方法を教えてもらえますか?私がしたいことは、クリックするとサーバー上のファイルに書き込むボタンがあることです。ここに、私が書いたコード:ボタン

<html> 
<head> 
<?php 
function change_html(){ 
    $myFile = "testFile.html"; 
    $fh = fopen($myFile, 'w') or die("can't open file"); 
    $stringData = "Hello\n"; 
    fwrite($fh, $stringData); 
    $stringData = "World!\n"; 
    fwrite($fh, $stringData); 
    fclose($fh); 
    } 
?> 
</head> 
<body> 
<input type="button" onclick="change_html()" Value="Continue"> 
</body> 
</html> 

ありがとうございます!

+0

このPHPスクリプトのように、JavaScriptを使用してサーバーサイドスクリプトと対話するには、AJAXを使用する必要があります。 – Nightfirecat

+0

あなたのウェブページに行き、どこかを右クリックして "ソースを見る"をクリックしてください。あなたが書いたPHPコードはそこにないことに注意してください。それはサーバー上で実行され、そのコードの出力はブラウザに送信されたものです。 PHPと他のサーバー側プログラミングがどのように動作するのかブラウザがWebページを要求し、Webサーバーがコードを実行し、その出力をブラウザに応答として送信します。リンクをクリックするか、フォームを送信すると、サーバに新しいリクエストが作成され、コードを実行する新しい機会が生まれます(ファイルの作成など)。ここであなたの質問をStackOverflowに書いたときは、それを保存するためにSOのフォームを提出しなければなりませんでした。 –

+0

@Nightfirecat彼はAJAXを使うために*必要*はありません。彼がJavaScriptを混乱させたというだけで、PHPは非同期にこれを行う必要があったわけではありません。 –

答えて

0

あなたがPHPでこれを実行する場合は、あなたのボタンは、それが仕事をしてするポイントフォームとPHPスクリプトを提出しています。

<form action="writefile.php" method="post"> 
<input type="submit" value="Continue" /> 
</form> 

-

<?php 
//writefile.php 
file_put_contents("testFile.html", "Hello\nWorld!\n"); 
?> 

したい場合はそのスクリプトが戻っフォームにリダイレクトすることができます。

<?php 
//writefile.php 
file_put_contents("testFile.html", "Hello\nWorld!\n"); 
header("Location: yourpage.php"); 
?> 
+0

ダンに感謝、あなたは素晴らしいです。これは魅力的に機能しました。 –

1

はそれを行うことはできません。 PHPはサーバー側、JavaScriptはクライアント側です。

  1. 利用JSクライアント上でスクリプトを実行するページをヒットAJAX呼び出しを発射する:2つのオプションがあります。

  2. ボタンがスクリプトを実行し、フォームを送信してもらいます。

+0

まさに私が言おうとしていたもの –

+0

あなたはその2つのオプションのどちらかを使って彼の質問に答えるつもりですか?これはコメントであり、答えではありません。 –

1

PHPとJavascriptが実際にどのようなものであるかを理解する必要があります:サーバー側とクライアント側の言語。 PHPはサーバ上でのみ動作し、HTTPリクエスト(ブラウザやAjaxなど)を介してクライアントと通信することができます。一方、Javascriptはクライアントサイドの言語であり、ブラウザウィンドウでのみ動作します。つまり、ページを変更することしかできません。ただし、Ajaxリクエストを介してサーバーと通信することはできます。

については、のPHPとJavascriptが実際にどのようなものかをお読みください。あなたのHTMLコードが絶対に検証しないことは言うまでもありません。

あなたが実際に何をしているのか理解したら、ファイルを修正したPHPスクリプトにAjaxリクエストを作成するか、入力ボタンをフォームに追加してください(実際は必須です)。ファイルを変更するPHPスクリプト。私は後者が良い方法だと思います。

+0

あなたはそれらの2つの方法のうちの1つを使って彼の質問に答えるべきです。これは彼の質問に対する回答ではありません(ボタンをクリックしたときにファイルを書き込むにはどうすればよいですか)。 –

+0

@ダン・グロスマン:私はあなたがこれと同じくらい些細なことがあるときに、コピー&ペーストの解決策を質問に書くべきではないと思います。 Daveがこれを理解していないと、彼は良いスクリプトを書くことができないと思うので、Alex、jondavidjohnと私は正しい方向に彼を指しています。誰もそれをしないと、Daveはこれが実際にどのように動作するかを決して学ばないでしょう... – Frog

+0

これはコメント欄です。それは答えのボックスのためではありません。これはディスカッションフォーラムではありません。 –

1
<html> 
<head> 
<?php 
if(isset($_GET['change_html'])) change_html(); 

function change_html(){ 
    $myFile = "testFile.html"; 
    $fh = fopen($myFile, 'w') or die("can't open file"); 
    $stringData = "Hello\n"; 
    fwrite($fh, $stringData); 
    $stringData = "World!\n"; 
    fwrite($fh, $stringData); 
    fclose($fh); 
    } 
?> 
</head> 
<body> 
<form action="?change_html=true" method="GET"> 
<input type="submit" Value="Continue"> 
</form> 
</body> 
</html> 
+0

ヘイ・ジェリー、助けてくれてありがとう。これは私のためにはうまくいかなかったが、私は100%それは私と関係があった!!再度、感謝します! –