jQueryのPOSTの戻り値に余分なものがついてしまいます。対処法をご教示いただけますでしょうか。
追記:alertでごみデータを削除できれば構いません。jQueryでのこの状態からの置換ができれば、それでOKです。よろしくお願いいたします。
jQueryでフォームの値を取得しPOSTします。
var formData = $('form').serialize(); $.post( "post.php", formData, function(data){ alert(data); } );
POST先のPHPで処理をします。変数は省略しますが、
echo "<tr><td></td><td></td></tr>";
となる予定です。しかし、戻り値のdataの先頭に<head/>というのがついてしまいます。
この余分な<head/>がつかない方法をご存じでしょうか。もしくは置換する方法でもよいです。
どうぞよろしくお願いいたします。
検証しているブラウザはChromeですか?もしそうならデベロッパーツール(F12キーで起動)を開いて、NetworkタブからAjax通信で帰ってきた文字列を質問欄に貼り付けてくださるとはかどります。
ありがとうございます、chromeです。デベロッパーツールを起動してNetworkタブを開いておりますが、ボタンクリックした後どの部分が文字列に当たりますでしょうか?
$.postはAjax通信なのでXHRを開いたままAjax通信を行うと末尾に1レコードが足されます。その名称をクリック→Previewで確認出来ると思います。
続けてすみません。responseというところですよね。やはり<head/>というのがついていました。
Previewですと、<tr><td>などのタグが抜けて、文字列のみになっています。期待した戻りが<tr><td>Aさん</td><td>男性</td></tr>とした場合、resuponseだと<head/><tr><td>Aさん</td><td>男性</td></tr>となります。 Previewですと、「Aさん男性」となります。
ありがとうございます。responseですね。やはりPHPから出力した時点でゴミデータが含まれてしまっているようです。
alert(data); では無く console.log(data);でコンソールに出力し、それを質問文に追記いただけませんか?
ありがとうございます。alert(data); とconsole.log(data);では全く同じでした。
では post.php を提示ください。
回答3件
あなたの回答
tips
プレビュー