我在网上使用各种帮助指南写了这篇文章:
<?php // update
if(isset($_POST['update']))
{
$id = $_POST['id'];
$emp_salary = $_POST['emp_salary'];
$sql = "UPDATE pins ".
"SET is_private = $emp_salary ".
"WHERE id = $pinDetails->id" ;
mysql_select_db('test_db');
$retval = mysql_query( $sql );
if(! $retval )
{
die('Could not change: ' . mysql_error());
}
echo "Post is now private<br><br>";
}
else
{
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td>Private
<input name="emp_salary" type="text" id="emp_salary" value="1">
<input name="id" type="hidden" id="id">
<input name="update" type="submit" id="update" value="Change">
</td>
</tr>
</table>
</form>
<?php
}
?><!-- update -->
我正在尝试创建一个在线表单,只需输入1
为私人或0
为公共作为审核工具,我就可以返回该表单将帖子从公共更改为私人。
但是,当我提交表单时,(有效)每次我重新访问页面时,它只会说回声声明"帖子现在是私有的"。我希望每次都能看到表单,以便在必要时可以一次又一次地重复使用。
为了实现这一点,我需要改变什么?
在最后一个条件下删除其他内容。
if(isset($_POST['update']))
{
$id = $_POST['id'];
$emp_salary = $_POST['emp_salary'];
$sql = "UPDATE pins ".
"SET is_private = $emp_salary ".
"WHERE id = $pinDetails->id" ;
mysql_select_db('test_db');
$retval = mysql_query( $sql );
if(! $retval )
{
die('Could not change: ' . mysql_error());
}
echo "Post is now private<br><br>";
}
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td>Private
<input name="emp_salary" type="text" id="emp_salary" value="1">
<input name="id" type="hidden" id="id">
<input name="update" type="submit" id="update" value="Change">
</td>
</tr>
</table>
</form>
之后:
echo "Post is now private<br><br>";
添加这个:
echo '<a href="' . $_PHP_SELF . '">see form</a>';
您的问题是表单发布变量仍在发送到服务器,因此您的 if 语句
if(isset($_POST['update']))
计算结果为 true,并且窗体不显示。