Php 使用javascript验证变量
一次提交多个等级是一种代码Php 使用javascript验证变量,php,javascript,Php,Javascript,一次提交多个等级是一种代码 这是验证前的javascript代码 function validateForm() { var x='<?php echo ($grade);?>'; if (x>100) { alert("Invalid Data Entry"); return false; } 函数validateForm(){ var x=“”; 如果(x>100){ 警报(“无效数据输入”); 返回false;
这是验证前的javascript代码
function validateForm() {
var x='<?php echo ($grade);?>';
if (x>100) {
alert("Invalid Data Entry");
return false;
}
函数validateForm(){
var x=“”;
如果(x>100){
警报(“无效数据输入”);
返回false;
}
在第三次回音下降中,它没有访问可变等级
<form name="form1" method="post" action="insertgradeac.php"onsubmit="return validateForm()" method="post">
<?php
$con = mysql_connect($server, $username, $password);
mysql_select_db($database);
$query_fetch5 = "SELECT ass_class FROM assess WHERE ass_ID LIKE '$id'";
$result_fetch5 = mysql_query($query_fetch5);
$row5 = mysql_fetch_row($result_fetch5);
$row5_0 = $row5[0];
$query_fetch = "SELECT st_ID, st_name FROM student WHERE class_ID LIKE '$row5_0'";
$result_fetch = mysql_query($query_fetch);
while ($row = mysql_fetch_row($result_fetch)) {
echo "<tr>\n";
echo "<td>$row[0]<input type=\"hidden\" name=\"stt_ID[]\" value=\"$row[0]\" /></td>\n";
echo "<td>$row[1]<input type=\"hidden\" name=\"student[]\" value=\"$row[1]\" /></td>\n";
echo "<td><input type=\"text\" name=\"grade[]\" /></td>\n";
echo "</tr>\n";
}
mysql_close($con);
?>
在第一个街区,我注意到:
您正在将x设置为字符串…然后将其作为数字/整数进行比较。设置x时请删除撇号
在第二个块中,我注意到您在查询中使用$id,而没有首先设置(并清理)它。JS函数将在浏览器中运行,但它试图访问一个PHP变量,该变量在表单提交到web服务器之后才会设置
请尝试以下方法:
function validateForm()
{
var grades = document.getElementsByName("grade[]");
for (var i = 0; i < grades.length; i++) {
if (Number(grades[i].value) > 100) {
alert("Grades cannot be more than 100.");
return false;
}
}
return true;
}
函数validateForm()
{
var grades=document.getElementsByName(“grade[]);
对于(变量i=0;i100){
警报(“等级不能超过100”);
返回false;
}
}
返回true;
}
我使用获取了所有grades[]
元素的列表,然后循环测试它们的值,如果值不好,则显示警报
实际上,您没有说明如何调用validateForm()
,但我假设您是在表单的提交事件中这样做的
注意,您还应该添加一些代码来确认输入的值实际上是一个数字,并且您需要在服务器端PHP代码中执行相同的验证,以防用户关闭JS(或使用浏览器开发工具绕过验证).欢迎使用Stack Overflow。该JS函数将在浏览器中运行,但它正在尝试访问一个PHP变量,该变量在表单提交到web服务器后才会设置。粘贴的javascript无效。首先在validateForm()中函数您实际上只是将x
赋值给一个字符串,然后检查它是否大于100。其次,代码末尾的?>
是一个PHP结束标记,不属于JavaScript脚本。我认为您误解了在服务器和latt上首次运行时PHP和JavaScript的交互方式er在客户端浏览器上它没有解决问题,我认为问题在于变量级别,将其作为表单的输入或php变量访问。当php被处理为html/javascript并发送到服务器时,您是否在浏览器中执行“查看源代码”以查看javascript是否如预期的那样?请向我们展示进入浏览器的htmlowseri只是没有写在这里不管怎样设置分数没有问题一切都很好只是验证不起作用我还是想看到浏览器接收到你编译的html/javascript。别忘了…所有php首先在服务器上处理。然后发送到浏览器。然后浏览器处理Javasc浏览器不会再做任何php工作了。非常感谢