在HTML表单的onSubmit属性中使用的简单PHP脚本到JavaScript函数


Simple PHP script to JavaScript function used in a onSubmit attribute of a HTML form

我已经被困了好几个小时了。我需要提交一个表单只有当其中一个输入等于一个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;
    }
}