将表单验证值传递给 php


Pass form validation value to php

所以我有一个简单的表单,其中包含一个脚本,可以在提交之前检查数据:

<form action='self.php' name='my_form' method='post' onSubmit="return checkit();">
    <select name='menu' id='menu'>
        <option value='00'>ZERO</option>
        <option value='01'>ONE</option>
    </select>
</form>

我想有一个弹出窗口或警报框来请求更多信息。有点像:

<script type="text/javascript">
function checkit()
{
    if(document.my_form.menu.value == "01")
    {
        var getColor = prompt("Enter Color: ", "enter the color");
        return false;
    }
</script>

那么,我将如何在提交时将变量"getColor"传递给PHP变量?

几乎是这样的:

<?php
    $theColorIs = getColor;
?>

有没有办法做到这一点?我知道PHP是服务器端,而脚本不是,但是表单尚未提交,因为脚本会停止它。这似乎是一件简单的事情,还有别的选择吗?

提前感谢您的帮助!!

您可以使用表单中的隐藏字段来存储值并通过 PHP 检索它

HTML表单:

<form action='self.php' name='my_form' method='post' onSubmit="return checkit();">
<input type="hidden" value="" name="myhiddenfield" id="myhiddenfield" />
<select name='menu' id='menu'>
<option value='00'>ZERO</option>
<option value='01'>ONE</option>
</select>
</form>

脚本:

if(document.my_form.menu.value == "01")
{
   var getColor = prompt("Enter Color: ", "enter the color");
   document.getElementById('myhiddenfield').value = getColor;
}

因此,当提交表单时,该值存储在 $_POST['myhiddenfield'] 中。

您可以将值追加到表单操作的查询字符串中:

<script type="text/javascript">
function checkit()
{
  if(document.my_form.menu.value == "01")
  {
    var getColor = prompt("Enter Color: ", "enter the color");
    document.my_form.action += "?color=" + getColor;
    return false;
  }
}
</script>

然后,您可以在 PHP 代码中引用颜色,如下所示:

if( isset( $_GET['color'] )
{
  $theColorIs = $_GET['color'];
}