我已经被困了好几个小时了。我需要提交一个表单只有当其中一个输入等于一个PHP回显。
简化脚本,如下所示:
<head>
</head>
<body>
<?php
$A = rand(0,10);
$B = rand(0,10);
$C = $A + $B;
?>
<script type="text/javascript">
function ValidateForm() {
if (form1.name.value == '') {alert ('Must say your name'); return false; }
if (form1.result.value != <?php echo $C ?>) {alert ('Result must be Equal'); return false; }
return false;}
else {return true;}
</script>
<form name="form1" method="post" action="Another.php" onSubmit="return ValidateForm();">
Name: <input type="Text" name="name" size="40">; <br>
Solve: <?php echo $A; ?> + <?php echo $B; ?>;
<input type="number" name="result" min="0"/>
<input type="Submit" name="send" value="Send">
</form>
所有这些(简单版本)都保存在。php文件中。
我知道JS脚本将运行在一个。html文件,但PHP不会。
我该怎么做才能使它工作?我想我应该把PHP或JS脚本到另一个文件,但我如何连接所有的文件彼此?
嗯…它现在工作了…出于某种原因……这是实际的代码:我们的想法是为老年人制作一个非常简单的验证码;该网站将为不超过100名老人服务。
<?php
$A = rand(0,10);
$B = rand(0,10);
$C = $A+$B;
?>
<script type="text/javascript">
function ValidarFormulario() { // pon atención al atributo 'onSubmit'
if (formula1.nombre.value == '') {alert ('Debe ingresar su nombre'); return false; }
if (formula1.ciudad.value == '') {alert ('Debe ingresar su ciudad'); return false; }
if (formula1.fono.value == '') {alert ('Debe ingresar su teléfono'); return false; }
if (formula1.email.value == '') {alert ('Debe ingresar su e-Mail'); return false; }
if (formula1.respuesta.value != <?php echo $C ?>) {alert('Result must be Equal'); return false; }
else {return true;}
}
<form name="formula1" method="post" action="registro.php" onSubmit="return ValidarFormulario();">
// some form forms inputs here
CAPTCHA: ¿Cuánto es <?php echo $A; ?> + <?php echo $B; ?>?
Su respuesta: <input type="number" name="respuesta" min="0" max="20" size="2" />
由于某种原因,它现在正在工作。至少我学会了JS在PHP文件中工作(这里是业余水平)
谢谢你的回答!
你的JavaScript是无效的,正确格式化代码,这就是它的样子
function ValidateForm() {
if (form1.name.value == '') {
alert('Must say your name');
return false;
}
if (form1.result.value != <?php echo $C ?>) {
alert('Result must be Equal');
return false;
}
return false;
} else {
return true;
}
如果你查看JavaScript控制台,你会看到错误
Uncaught SyntaxError: Unexpected token else
修复代码,函数提前关闭,你有一个随机的else和一个随机的return。正确的格式可以创造奇迹,这样你就可以看到结构。
function ValidateForm() {
if (form1.name.value == '') {
alert('Must say your name');
return false;
} else if (form1.result.value != <?php echo $C ?>) {
alert('Result must be Equal');
return false;
} else {
return true;
}
}
您的条件逻辑有错误。你的JavaScript应该是这样的:
function ValidateForm() {
if (form1.name.value == '') {
alert('Must say your name');
return false;
}
else if (form1.result.value != <?php echo $C ?>) {
alert('Result must be Equal');
return false;
}
else {
return true;
}
}