PHPでテキストエリア配列($ taskLinks)をループし、データベースに対して各行のエントリをチェックして一致するものを探し、データベースから一致($ a) :ユーザーがテキストエリアに追加した後、上から任意の一致を返すときAJAXでそれを呼び出そうと完璧に動作しますが、イム上記Ajaxで呼び出されたときにForeachループが1回だけ実行される
$a = array();
$array = split("\r\n", $taskLinks);
foreach($array as $url){
$query = "SELECT url FROM links
WHERE `url`
LIKE '$url'
AND `projectId` = '$projectId'";
$result = mysql_query($query);
$row = mysql_fetch_object ($result);
$matchedLink = $row->url;
array_push ($a,$matchedLink);
}
foreach ($a as $row){
echo "$row\r";
}
(linkchecker.phpと呼ばれる)PHPスクリプト。これを行うには、以下のようにして、textareaのonChange = "ajaxFunction()"と組み合わせてください。変数は、クエリ文字列でスクリプトに渡していると、PHPスクリプトはテキストエリアに一行だけのためではなく、作品 -
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('ajaxDiv');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
document.myForm.time.value = ajaxRequest.responseText;
}
}
var taskLinks = document.getElementById('taskLinks').value;
<!--
<?php
echo("var projectId = ('$projectId');");
?>
// -->
var queryString = "?taskLinks=" + taskLinks + "&projectId=" + projectId;
ajaxRequest.open("GET", "linkchecker.php" + queryString, true);
ajaxRequest.send(null);
}
問題は、PHPスクリプトは一つだけの行がテキストエリアに追加されたときに動作しているようです - 通常と同じように、複数の行を処理する必要があります。
PHPスクリプトがテキストエリア内のすべてのエントリをチェックするようにAJAXに何をすることができますか?
:
あなたもパラメータをエンコードする必要があります。
それは
"\r\n"
EDITで
/\r?\n/g
の内部文字列の発生回数を置き換えますそのデータをPHPスクリプトに渡し、応答に基づいて目的の関数を実行します。 – RobB