所以我有一个简单的表单,其中包含一个脚本,可以在提交之前检查数据:
<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'];
}