ここに私のコードがあります:
var co = 0;
var comp = '';
<?php $i = 0;?>
while (co < <?php echo $db->count_rows(); ?>)
{
if ((parseInt(value) >= <?php echo $mfr[$i] ?>) && (parseInt(value) <= <?php echo $mto[$i] ?>))
{
comp = 'T';
break;
}
co++;
<?php $i++; ?>
}
私はまだこのphpとjavascriptの全体について学んでおり、この両方の言語に対する理解を深めるために、まだ取り組む必要のあることがたくさんあることを知っています. だからこそ、私はこれであなたの助けが本当に必要なのです
while イテレーションを機能させようとしているので、javascript の変数と、データベースから値を取得した php の変数を比較できます。ご覧のとおり、php 変数 ('$mfr' および '$mto') は配列です。今、私は両方のすべての要素を調べて、条件を満たしていれば、変数「comp」を更新し、反復中に全体を停止します
しかし問題は、'$i' 変数が反復処理を行わないことです。一度しか実行されないので、'$mfr' と '$mto' の値はどこにも行きません。javascript の値を php の '$mfr' および '$mto' の値と比較できるようにするには、どうすればこれを修正できますか?
あなたの助けは大歓迎です、ありがとう:)
編集
まあ、それは実際には jqgrid のカスタム検証の機能です。理論的にはphpがサーバー側でjavascriptがクライアント側の言語であることは知っていますが、実際にそうであるかはよくわかりません
私が実際にやろうとしているのは、ユーザーが値を入力して送信すると、システムは入力された値がデータベース内のテーブルの「fromid」列と「toid」列の値の間にあるかどうかをチェックすることです
ここに関数の完全なコードがあります
function checkid(value)
{
var co = 0;
var comp = '';
<?php $i = 0;?>
while (co < <?php echo $db->count_rows(); ?>)
{
if ((parseInt(value) >= <?php echo $mfr[$i] ?>) && (parseInt(value) <= <?php echo $mto[$i] ?>))
{
comp = 'T';
break;
}
co++;
<?php echo $i++; ?>
}
if (comp != 'T')
{
return [true, "", ""];
}
else
{
return [false, "Value entered is already between a range. Please try again!", ""];
}
}
これが「$mfr」および「$mto」変数を取得する方法です
<?php
$db=new database($dbtype, $dbhost, $database, $dbuser, $dbpassword, $port, $dsn);
$db->query("select fromid, toid from CORE_ID");
$i = 0;
while($row = $db->get_row())
{
$mfr[$i] = $row[fromid];
$mto[$i] = $row[toid];
$i++;
}
?>
これを行うためのより良い方法がある場合は、教えてください