この記事では、Ajax の非同期送信データの戻り値の改行の問題を中心に、Ajax の非同期送信処理における改行のある戻り値の処理手法を例の形で詳しく分析しています。次の
の例は、Ajax で非同期に送信されたデータの戻り値の行折り返し問題を分析します。参考として皆さんと共有してください。詳細は次のとおりです。
前回の分析では、「JavaScript が AJAX コールバック関数に基づいてパラメータを渡す」と「Ajax 転送パラメータ値が中国語の場合の IE ブラウザと FF ブラウザの違い」を紹介しました。 ajax コールバックについて学びました。 関数転送には、さまざまなブラウザーでの中国語の文字化けの問題を処理するためのメソッドが含まれます。ここでは、Ajax 非同期送信の戻り値の改行を処理するテクニックを分析します。
背景の紹介:
実装する必要がある関数は次のとおりです: ドロップダウン ボックスでカテゴリを選択し、それを PHP に送信し、選択したカテゴリに従ってカテゴリ内のメンバー名を返します。各メンバーの名前がテキストエリアに改行で表示されます。
htmlコード:
<form action="setduty.php?action=add" method="post" name="setForm" id="setForm"> <p> <label>类型:</label> <select name="type" id="typeduty"> <option value="-1">选择类型</option> <option value="1">值班首长</option> <option value="2">值班处长</option> <option value="3">值班员</option> </select> </p> <p class="opertext"> <label>成员:</label> <textarea name="names" id="names" cols="30" rows="10"></textarea> </p>
JQueryコード:
$(document).ready(function(){ $("#typeduty").change(function(){ var type = $("#typeduty").val(); $.post("setduty_do.php", { 'cid' : type, },function(data,status){ newData = data.replace(/\r\n/g,''); $("#names").html(newData); }); }); });
PHPコード:
if($type){ switch($type){ case "1": $arrs = getChiefList(); break; case "2": $arrs = getDirectList(); break; case "3": $arrs = getAttendantList(); break; default: break; } $arr_names = ""; foreach($arrs as $arr){ if(strlen($arr[1])>2){ $arr_names.= $arr[1]."\n"; } } echo $arr_names; }
PHPコードで直接返される値には改行「n」があり、IEとFFの改行記号が含まれています。 textarea は両方とも "n" です。jQuery の戻り値の処理では
newData = data.replace(/\r\n/g,'');
を使用して返された結果を処理し、最初の改行記号を削除することに注意してください。Ajax によって返される値には自動的に改行が含まれます。これは Ajax 自体に含まれています。
上記は私があなたのためにまとめたものです。
関連記事:
SSHオンラインモールがajaxを利用してユーザー名の非同期検証を完了
以上がAjax非同期送信データ戻り値の改行問題の解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。