JavascriptでPHPの返り値を画面上に表示する
http://tydk27.info/aretter.html という下らないものを作っていました。入力された文字列をPHP側でmecabを用いて形態素解析し、名詞を「アレ」に変換して、変換後の文字列を画面上に表示します。おぉ、自分で書いててもくだらなすぎる。ニュースとかを変換すると失笑できますのでぜひ。
<?php $str = $_GET['str']; $mecab = new MeCab_Tagger(); $nodes = $mecab->parseToNode( $str ); $ret = ""; $flg = False; foreach ( $nodes as $n ) { $sur = $n->getSurface(); $fea = $n->getFeature(); if ( strpos( $fea, "名詞" ) === FALSE ) { $ret = $ret.$sur; $flg = False; } else { if ( $flg === True ) { continue; } else { $ret = $ret."アレ"; $flg = True; } } } print $ret;
名詞が連続すると「アレアレアレ…」というようにアレな文章になってしまうので、その場合は最初の1回だけ適用しています。
っで、PHP側で作った文字列を画面上に表示するわけですが、そこをJavascript(jQuery)でやってしまいましょう、というお話。
$(document).ready(function () { $("#submitButton").click(function () { $('#error').text(""); inputText = $("#textData").val(); if (inputText.length == 0) { $('#error').text("入力して下さい"); } else { translate(inputText); } }); }); function translate(string) { var obj = {}; obj['str'] = string; $.get('mecab.php', obj, function(data) { $('#result').val(data); }); }
文字列が入力されていたら、translate()を呼び出し、mecab.phpに投げる。getした文字列をid="result"なテキストエリア等のvalにぶち込みます。
情弱なので、「こんなこともできるのかーほえー」と思ったものです。