基本上我有一个带有5个单选按钮的表单。没有提交按钮。我希望在用户点击任何单选按钮时运行该表单,这就是我所做的。
<input id="5" type="radio" name="star" onchange="this.form.submit();" <?php if ($row["star"] =="5") echo "checked";?> value="5"/>
表单需要一个查询字符串,所以我正在使用像这样的表单操作
<form name="submit" action="http://example.com/page.php?id=<?php echo $urlid;?>&title=<?php echo $title;?>" method="POST">
我的php是
if ($_POST["submit"]) {
$rating = $_POST['star'];
$title = $_GET['title'];
$verification = ($_GET['verification']);
} else {
//run the page like usual
}
经过测试,我发现onclick,它运行表单操作,但在php端,它转到“else”,其中运行页面就像往常一样。有任何想法吗?
答案 0 :(得分:2)
您的PHP正在检查$_POST['submit']
是否包含值。您的表单不包含具有属性name="submit"
的表单元素,因此它会失败并直接转到 else 语句。
如果您想检查表单是否已发布,那么您应该检查:
if (!empty($_POST)) {}
或
if ($_SERVER['REQUEST_METHOD'] == 'POST') {}
答案 1 :(得分:1)
表单元素似乎具有无效属性,缺少引号和空格 通常更容易编写更多代码,并使其更清晰
<?php
$url = "http://example.com/page.php?id=". $urlid ."&title=". $title;
?>
<form name="submit" action="<?php echo $url; ?>" method="POST">
答案 2 :(得分:0)
由于您正在检查 -
if ($_POST["submit"]) { // this checks whether there is any item named 'submit' inside the POST or not
} else {
//run the page like usual
}
最简单的方法是放置一个名为submit
的隐藏项,以便检查验证为true-
<form .. >
....
<input type='hidden' name='submit' value='submit' />
</form>