javascriptからphp呼び出し
【JAVASCRIPTからPHPを呼び出せない】ので微妙にムズカユイ思いをされた方も多いと思います。
ですが、この方法でそれが実現できちゃうんです!!!
以下の流れを把握できれば、ブラウザ上のJAVASCRIPTからPHPのローカル処理とその結果を受け取ることができます。
関数名を変えて複数作ることもできますので、私にはVB6のパワーアップ版のように
アプリケーションとして使用しています。
サーバーの状態監視やローカルのアプリケーションと同等のもの(画面推移が無いので)を作ることができます。
javascriptからPHPを呼び出し、このときpostで渡し、PHPの返り値を受け取る。
もちろん、ページの推移なしにできます!
こんな、ajax的なことが、formとiframeを使うとできてしまいます。
CALLBACKも付いて完璧!パチパチ(笑)
用途:HTML上のデータを、サーバー上のCSVに『ちょっと』書き出したい。
ページは推移したくない。
※コツは、機能の呼び出しボタンをtableタグのtdタグで、ボタンとして作成すると便利です。
【HTMLの方】
<table><tr>
<td onclick= DIRnameSAVE()>DIR名を保存</td>
</tr></table>
function DIRnameSAVE(){
save_data_Form.callback.value = "save_data_callback";
save_data_Form.arg1.value = window.parent.DIRform.DIRname.value;
save_data_Form.submit();
}
function save_data_callback( status ){
<!-- 呼び出したPHPが終わった後、処理はここにもどります。 -->
<!-- statusに、PHPからの返り値 SUCCESS があります。 -->
}
<!-- save_data()用のcallbackフォーム -->
<form id="save_data_Form" action="save_data.php" target="save_data_Frame" method="post">
<input id="callback" name="callback" type="hidden">
<input id="arg1" name="arg1" type="hidden">
<input id="arg2" name="arg2" type="hidden">
<input id="arg3" name="arg3" type="hidden">
<input id="arg4" name="arg4" type="hidden">
<input id="arg5" name="arg5" type="hidden">
<input id="arg6" name="arg6" type="hidden">
<input id="arg7" name="arg7" type="hidden">
<input id="arg8" name="arg8" type="hidden">
</form>
<iframe id="save_data_Frame" name="save_data_Frame" style="width:0;height:0;visibility:hidden" tabindex="-1"></iframe>
【PHPの方】
※ローカルのファイル処理などを実行じて、その結果を返すことができます。
JAVASCRIPTからPHPを呼び出せないので微妙にムズカユイ思いをされた方も多いと思います。
ですが、この方法でそれが実現できちゃうんです!!!
<?php>
$callback = $_POST["callback"];
$data = $_POST['arg1'];//他のarg2以降は必要に応じて
$i = strlen($data);
if( $i != 0 )
{
$fp = fopen('out_data.csv', 'w');
fprintf ($fp, "%s",$data );
fclose($fp);
}
$status = "SUCCESS";
$html = '<script language="JavaScript">
parent.'.$callback.'("'.$status.'");
</script>
';
echo $html;
exit;
?>
ですが、この方法でそれが実現できちゃうんです!!!
以下の流れを把握できれば、ブラウザ上のJAVASCRIPTからPHPのローカル処理とその結果を受け取ることができます。
関数名を変えて複数作ることもできますので、私にはVB6のパワーアップ版のように
アプリケーションとして使用しています。
サーバーの状態監視やローカルのアプリケーションと同等のもの(画面推移が無いので)を作ることができます。
javascriptからPHPを呼び出し、このときpostで渡し、PHPの返り値を受け取る。
もちろん、ページの推移なしにできます!
こんな、ajax的なことが、formとiframeを使うとできてしまいます。
CALLBACKも付いて完璧!パチパチ(笑)
用途:HTML上のデータを、サーバー上のCSVに『ちょっと』書き出したい。
ページは推移したくない。
※コツは、機能の呼び出しボタンをtableタグのtdタグで、ボタンとして作成すると便利です。
【HTMLの方】
<table><tr>
<td onclick= DIRnameSAVE()>DIR名を保存</td>
</tr></table>
function DIRnameSAVE(){
save_data_Form.callback.value = "save_data_callback";
save_data_Form.arg1.value = window.parent.DIRform.DIRname.value;
save_data_Form.submit();
}
function save_data_callback( status ){
<!-- 呼び出したPHPが終わった後、処理はここにもどります。 -->
<!-- statusに、PHPからの返り値 SUCCESS があります。 -->
}
<!-- save_data()用のcallbackフォーム -->
<form id="save_data_Form" action="save_data.php" target="save_data_Frame" method="post">
<input id="callback" name="callback" type="hidden">
<input id="arg1" name="arg1" type="hidden">
<input id="arg2" name="arg2" type="hidden">
<input id="arg3" name="arg3" type="hidden">
<input id="arg4" name="arg4" type="hidden">
<input id="arg5" name="arg5" type="hidden">
<input id="arg6" name="arg6" type="hidden">
<input id="arg7" name="arg7" type="hidden">
<input id="arg8" name="arg8" type="hidden">
</form>
<iframe id="save_data_Frame" name="save_data_Frame" style="width:0;height:0;visibility:hidden" tabindex="-1"></iframe>
【PHPの方】
※ローカルのファイル処理などを実行じて、その結果を返すことができます。
JAVASCRIPTからPHPを呼び出せないので微妙にムズカユイ思いをされた方も多いと思います。
ですが、この方法でそれが実現できちゃうんです!!!
<?php>
$callback = $_POST["callback"];
$data = $_POST['arg1'];//他のarg2以降は必要に応じて
$i = strlen($data);
if( $i != 0 )
{
$fp = fopen('out_data.csv', 'w');
fprintf ($fp, "%s",$data );
fclose($fp);
}
$status = "SUCCESS";
$html = '<script language="JavaScript">
parent.'.$callback.'("'.$status.'");
</script>
';
echo $html;
exit;
?>