これは私を夢中にさせています。MySQLからデータを取得し、要素をコンマで区切った文字列として保存するPHPスクリプトがあります。
JavaScriptはその文字列を受け取り、コンマを「\ n」に置き換えて、テキスト領域内に表示します。これで、テキスト領域からテキストに新しい行を追加できます。ボタンをクリックするときは、文字列をコンマで区切られた要素に変換し直してから、(AJAXを介して)PHPに再度設定して保存する必要があります。問題はJavaScriptにあり、テキスト領域に3行を超える場合、「\n」文字を検出できません。
// These are the lines of the text-area, after replacing ',' by '\n'
var textarealines=input_hidden_element.value.replace(',','\n').replace(',','\n');
// When trying to replace '\n' by ',' and send back, PROBLEM!
var AjaxRequest = WT.AjaxObject();
AjaxRequest.open('POST', WT.AjaxLocation, true);
AjaxRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
AjaxRequest.send('values=' + textarealines.replace('\n', ',').replace('\n', ','));
AjaxRequest.onreadystatechange = function() {
// Bla bla bla
}
だから、私は何が間違っているのですか?最大2行まで、新しい行は正しくコンマに置き換えられますが、2行を超えると、最初の2行だけが置き換えられ、次の行は「\n」を含む1行のテキストとして「n」文字で送信されます。ありがとう