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

HTML表单的onSubmit属性中使用的简单PHP脚本到JavaScript函数,javascript,php,html,onsubmit,Javascript,Php,Html,Onsubmit,我已经被困在这几个小时了。我只需要在其中一个输入等于PHP echo时提交表单 将脚本简化为如下内容: <head> </head> <body> <?php $A = rand(0,10); $B = rand(0,10); $C = $A + $B; ?> <script type="text/javascript"> function ValidateForm() { if (form1.name.va

我已经被困在这几个小时了。我只需要在其中一个输入等于PHP echo时提交表单

将脚本简化为如下内容:

<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>

函数ValidateForm(){
如果(form1.name.value=''){alert('Must say your name');返回false;}
if(form1.result.value!=){alert('result必须相等');返回false;}
返回false;}
else{return true;}
姓名:
求解:+;
所有这些(简单版本)都保存在一个.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" />

函数ValidarFormulario(){//pon atención al atributo'onSubmit'
if(formula1.nombre.value=''){alert('Debe ingresar su nombre');返回false;}
if(formula1.ciudad.value=''){alert('Debe ingerar su ciudad');返回false;}
if(formula1.fono.value=''){alert('Debe ingresar su teléfono');返回false;}
if(formula1.email.value=''){alert('Debe-ingresar su-email');返回false;}
if(formula1.respuesta.value!=){alert('结果必须相等');返回false;}
else{return true;}
}
//这里有一些表单输入
验证码:?Cuánto es+?
苏瑞斯佩斯塔:
出于某种原因,它现在正在工作。至少我知道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;
}
函数ValidateForm(){
如果(form1.name.value==''){
警惕(“必须说出你的名字”);
返回false;
}
如果(form1.result.value!=){
警报(“结果必须相等”);
返回false;
}
返回false;
}否则{
返回true;
}
如果您查看JavaScript控制台,就会看到错误

未捕获的SyntaxerError:意外标记else

修复代码后,函数会提前关闭,并且会有一个随机else和一个随机返回。正确的格式可以让您看到结构

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;
    }
}
函数ValidateForm(){
如果(form1.name.value==''){
警惕(“必须说出你的名字”);
返回false;
}else if(form1.result.value!=){
警报(“结果必须相等”);
返回false;
}否则{
返回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;
    }
}
函数ValidateForm(){
如果(form1.name.value==''){
警惕(“必须说出你的名字”);
返回false;
}
else if(form1.result.value!=){
警报(“结果必须相等”);
返回false;
}
否则{
返回true;
}
}

请检查解决方案我通常使用php验证表单数据:
如果(空($\u POST[“name”]){echo“您需要一个名称!”}否则{$name=$\u POST[“name”];}
机器人程序将直接提交表单而不使用javascript。我建议将变量存储在会话中,并检入PHP。cod样式有很多改进:使用小写而不是驼峰大小写(例如,
onSubmit
);将JS与HTML/PHP代码分开;使用小写变量、HTML属性和文件名;缺少
标记和doctype缺少一些内容。检查并与给出的其他答案进行比较。@epascarello您是否因为我缺少最后一个括号而否决了我的投票,并用添加的括号重新发布了我的答案?这件事已经过去一段时间了,所以我可能已经忘记了,但这似乎是一个廉价的举动,而不仅仅是在我的帖子上发表评论。