好的,这是我的代码:
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++;
}
?>
如果有更好的方法来做到这一点,那么请告诉我