为什么我得到这个(Undefined index:rating)错误?
正如您所看到的,我已将“评级”写入表格中的名称。
$rating = $_POST['rating'];
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
if (isset($_POST['submit'])) {
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit">
</form>
<?php
};
答案 0 :(得分:1)
目前,在没有提交的情况下,$ _POST数组中不存在密钥'rating',因此通知。如果您想在提交后执行此操作,请更改订单:
if (isset($_POST['submit'])) {
$rating = mysql_real_escape_string($_POST['rating']);
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit" name = "submit">
</form>
<?php
};
答案 1 :(得分:1)
您没有发布评级变量
检查和设置值的好习惯是
$rating=0;
if(isset( $_POST['rating']))
$rating = $_POST['rating'];
如果设置了,它将分配已发布的值,否则它将具有值0。
在你的情况下,它首先是空的,因为你将使用GET方法访问页面,所以把它作为
if (isset($_POST['rating'])) {
//query and rest of the details here..
}
答案 2 :(得分:0)
Use
ini_set("display_errors","off");
in starting of php, notice will dismiss...
答案 3 :(得分:0)
这只是你得到的通知。 在顶部写这个
ini_set('display_errors','0');
它会起作用..
答案 4 :(得分:0)
注意:你必须检查变量isset和!empty。
试试这个:
if(isset($_POST['rating']) && !empty($_POST['rating'])){
$rating = $_POST['rating'];
}else{
$rating = '0';
}
$rate = "INSERT INTO cms_rating (rating, p_id) VALUE ('$rating', '$id')";
if(isset($_POST['submit'])){
$con->query($rate);
} else {
?>
<form action="" method="post">
<input type="radio" name="rating" value="1">*
<input type="radio" name="rating" value="2">**
<input type="radio" name="rating" value="3">***
<input type="radio" name="rating" value="4">****
<input type="radio" name="rating" value="5">*****
<input type="submit">
</form>
<?php
};
答案 5 :(得分:0)
问题是页面IS在页面加载后立即运行脚本。但是,该脚本尚未包含输入字段中的信息。解决方案非常简单,只需两个简单的步骤:
1)在你的html中为你的提交按钮添加一个“name”属性。
<input type="submit" name="submit" value="Register">
2)将此代码放在php脚本的顶部,并将其替换为提交按钮的名称。放置在脚本顶部的代码会在表单尚未提交时停止运行脚本。
if(!isset($_POST['submit']))
{
exit;
}
我希望这有助于您,并祝您完成项目。