我尝试通过PHP获取单选按钮的值,它们最终只得到第一个if语句的值。任何修复或错误? 无论我先说出什么声明,它都会得到它的价值。留下其他人。
if(isset($_POST['submit_id']))
{
if($_POST['radio'] = 0)
{
$SQL = $odb -> prepare("UPDATE `files` SET `status` = 0 WHERE `ID` = :id");
$SQL -> execute(array(':id' => $_POST['form_id']));
}
if($_POST['radio'] = 1)
{
$SQL = $odb -> prepare("UPDATE `files` SET `status` = 1 WHERE `ID` = :id");
$SQL -> execute(array(':id' => $_POST['form_id']));
}
if($_POST['radio'] = 2)
{
$SQL = $odb -> prepare("UPDATE `files` SET `status` = 2 WHERE `ID` = :id");
$SQL -> execute(array(':id' => $_POST['form_id']));
}
}
<form method="post" action="viewUploads.php" id="page_settings">
<div class="uk-input-group">
<label>Please Input the File ID</label>
<input type="text" name="form_id" class="md-input" />
</div>
<br />
<div class="uk-width-medium-3-5">
<span class="icheck-inline">
<input type="radio" name="radio" id="radio_demo_inline_1" data-md-icheck />
<label for="radio_demo_inline_1" class="inline-label" value="2">Accepted</label>
</span>
<span class="icheck-inline">
<input type="radio" name="radio" id="radio_demo_inline_2" data-md-icheck />
<label for="radio_demo_inline_2" class="inline-label" value="1">Rejected</label>
</span>
<span class="icheck-inline">
<input type="radio" name="radio" id="radio_demo_inline_3" data-md-icheck />
<label for="radio_demo_inline_3" class="inline-label" value="0">Pending</label>
</span>
</div><br />
<div class="uk-width-medium-1-3">
<button class="md-btn md-btn-danger" name="submit_id" type="submit" onclick="(function(modal){ modal = UIkit.modal.blockUI('<div class=\'uk-text-center\'>Please Wait...<br/><img class=\'uk-margin-top\' src=\'/assets/img/spinners/spinner.gif\' alt=\'\'>'); setTimeout(function(){ modal.hide() }, 3000) })();">Submit</button>
</div>
</form>
答案 0 :(得分:0)
if(isset($_POST['submit_id']))
{
if($_POST['radio'] == 0)
{
$SQL = $odb -> prepare("UPDATE `files` SET `status` = 0 WHERE `ID` = :id");
$SQL -> execute(array(':id' => $_POST['form_id']));
}
else if($_POST['radio'] == 1)
{
$SQL = $odb -> prepare("UPDATE `files` SET `status` = 1 WHERE `ID` = :id");
$SQL -> execute(array(':id' => $_POST['form_id']));
}
else if($_POST['radio'] == 2)
{
$SQL = $odb -> prepare("UPDATE `files` SET `status` = 2 WHERE `ID` = :id");
$SQL -> execute(array(':id' => $_POST['form_id']));
}
}
从=更改为==
你可以在php手册中看到 Assignment Operators 13 C omparison Operators
答案 1 :(得分:0)
单个等号是一个赋值:它会覆盖左侧,
= means assignment ( $a = 1 ) so it return true
== is for comparison ( true == false is false ).
所以应该是这样的
if($_POST['radio'] == 0){ } else if($_POST['radio'] == 1){}.....