我正在尝试使用 PHP 编写动态表单。我想要一个包含两种形式的网页:
- 上面的形式允许在 mysql 数据库中搜索一个元素,例如,一个名称
- 下面的表格显示了数据库中与此名称相关联的数据
如果我按下上层表单的“搜索”按钮,则会显示下层表单,并且文本字段将填充数据库中属于该名称的数据。如果我将用户名更改为其他值并再次按“搜索”,则会显示与新记录关联的数据,依此类推。
下部表格还有一个“更新”按钮,允许将对文本框(在下部)所做的更改传输到数据库。
现在,我遇到了以下问题:在我的脚本中,我最初将 name 的值(从上式)设置为“”。然后当我按下“搜索”按钮时,会显示表单的下部,并在下部显示相应的数据。然后当我按下“更新”按钮时,与名称关联的文本字段设置为空字符串。这是因为在我的脚本中,我最初将名称设置为“”。我希望在这种情况下,以上式输入的数据不会改变,即保持不变。
我想,我在这里遗漏了一些东西。对此可能有一个简单的解决方案,但我做的事情根本上是错误的。如果你能帮助我,那就太好了。
这就是我尝试过的......我删除了很多细节,但我想这可以让你知道我想要做什么。请注意,整个代码都在文件 update.php 中。
<?php
function search_bus($mysql, $name)
{
// do some stuff here...
}
function update_bus($mysql, $b_id)
{
// do some stuff here...
}
// some global variables
$b_id = 0;
$username = ""; // username of business
// get b_id that corresponds to username
if (isset($_REQUEST['search']))
{
$b_id =0; // business id
if (isset($_POST['user']))
{
$username = $_POST['user'];
$b_id = search_bus($mysql, $username);
}
}
elseif(isset($_REQUEST['update']))
{
update_bus($mysql, $b_id);
}
?>
<h2>Search:</h2>
<form name="search_bus" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Username: <input type="text" name="user" value="<?= htmlentities($username) ?>"/>
<input type="submit" value="Suchen" name="search"/>
</form>
<?php
if($b_id != 0)
{
?>
<h2>Data:</h2>
<form name="business_design" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<-- some form follows here -->
<?php
}
?>