ajaxCallでの文字化け解消
前回ajaxCallを使うと文字化けをすると書きましたが、その原因判明。
forms.inc.phpのajaxDumpファンクションの中でutf8_encodeを使っているのが駄目っぽい。
その部分3ケ所全部コメントアウトしたら、文字化けは発生しなくなりました。
UTF-8で作っていないformでもテストしてみたのですが、今のところ大丈夫な模様・・・。
※確証無し
| 固定リンク
| コメント (0)
| トラックバック (0)
前回ajaxCallを使うと文字化けをすると書きましたが、その原因判明。
forms.inc.phpのajaxDumpファンクションの中でutf8_encodeを使っているのが駄目っぽい。
その部分3ケ所全部コメントアウトしたら、文字化けは発生しなくなりました。
UTF-8で作っていないformでもテストしてみたのですが、今のところ大丈夫な模様・・・。
※確証無し
| 固定リンク
| コメント (0)
| トラックバック (0)
例)
formの上にEdit1とButton1を配置。
Button1 Events/OnClick時に、Edit1->Textに'test'と入れる。
1. formのUseAjaxをtrueにする。
2. Javascript/OnClickのPHP側に下記のように書く。
function Edit1JSClick($sender, $params)
{
echo $this->Button1->ajaxCall('Button1Click');
?>
//Add your javascript code here
return(false);
}
※ajaxCallを行なうのはPHP側という事に注意
なお、ajaxCallではカスタムfuncitonを使う事も出来ます
| 固定リンク
| コメント (0)
| トラックバック (0)
DBGridで選択された行の値の取得方法。
Javascriptで書きます。
以下はDBGrid1をクリック時(Javascript/OnClick)にEdit1およびEdit2に列0と列1のデータをそれぞれ入れています。
function DBGrid1JSClick($sender, $params)
{
document.getElementById('Edit1').value = DBGrid1.getTableModel().getValue(0, DBGrid1.getFocusedRow());
document.getElementById('Edit2').value = DBGrid1.getTableModel().getValue(1, DBGrid1.getFocusedRow());
}
| 固定リンク
| コメント (0)
| トラックバック (0)
■PHPでの書き方
$this->Edit1->Text = 'test';
■Javascriptでの書き方
document.getElementById('Edit1').value = 'test';
OnClickなどの各コンポーネントのイベントはPHPでもJavascriptでもどちらでも使えます。
ただし各イベントの数や、種類なんかは微妙に違っています。
PHPはObject InspectorのEventsタブの中にあるのがそうです。Javascriptの方はそのものすばり、Javascriptタブの中にあります。
| 固定リンク
| コメント (0)
| トラックバック (0)
PHPのコードは書けても、WEB作成センスが全くない人(私含む)へ。
Ppientje氏作のD4PHP用テンプレートファイルが以下の場所で公開されています。
デモとDLはこちらで。
日本語を使用する場合、いったん*xml.php以外のphpファイルをBOM付きUTF-8に変換し、各FormのEncodingをUnicode(UTF-8)にする必要があります。
ちなみに継承元FormのisMasterプロパティがtrueになっている為、実行時「?」マークが左上に出ます。
IDEのbugだと思うのですが サーバー上では問題ないので華麗にスルーして下さい。
余談ですが、継承元のFormでmemory_limitを16Mにセットしているので、これ以上必要な場合修正必須。
| 固定リンク
| コメント (0)
| トラックバック (0)
NativeなOracle(oci8)コンポーネントを作成中です。
試していただけるOracle使いの勇者を募集してます。
現在のはまだα版なので、すごいバグやセキュリティホールがひそんでいたり、将来的にプロパティが変更になる可能性もあります。
ダウンロードはコチラから。
| 固定リンク
| コメント (6)
| トラックバック (0)