我已经创建了一个表单供用户填写,然后在提交时进行处理并完成填充。通常只是一个数据库查询。
使用我正在使用的数据库,某些字段可能为NULL,因此用户可能会在某些字段中留下空白。但是,在测试时,我尝试将一个或多个字段清空,但表单根本不会提交任何内容。当我调试时,当我从POST方法中检索值时,几乎所有字段的值,甚至是包含文本的字段的值都变为NULL。
问题是,我需要能够允许用户提交一些空白的表单,因为它们不是完全必要的。我该怎么做呢?
我是否必须检查isset()以查找可能为空的所有内容,如果是,则将其设置为NULL?
提前致谢!
编辑:这是表格代码。
<form onsubmit="return confirm('Are you sure you want to save the edits?');" method="post" action="orgedit.php?id=<?php echo $organization_id?>" id="orgform" name="orgform" >
Parent Organization ID: <input type="text" name="parent_id" value="<?php echo $row['parent_id']; ?>"/> <br /><br />
Organization nm: <input type="text" name="org_nm" value="<?php echo $row['org_nm']; ?>"/> <br /><br />
TBR Organization Sysnm: <input type="text" name="tbr_sysnm" value="<?php echo $row['tbr_sysnm']; ?>"/> <br /><br />
Type: <input type="text" name="type" value="<?php echo $row['type']; ?>"/> <br /><br />
Contact nm: <input type="text" name="contact_nm" value="<?php echo $row['contact_nm']; ?>"/> <br /><br />
Financial Info: <input type="text" name="financial_info" value="<?php echo $row['financial_info']; ?>"/> <br /><br />
Other Info: <input type="text" name="other_info" value="<?php echo $row['other_info']; ?>"/> <br /><br />
Active: <input type="text" name="active" value="<?php echo $row['active']; ?>"/> <br /><br />
URL: <input type="text" name="url" value="<?php echo $row['url']; ?>"/> <br /><br />
<input type="submit" value="Save Entry" name="save" />
</form>
这里是php处理代码:)
if(isset($_GET['id']))
{
$organization_id = $_GET['id'];
$parent_organization_id = $_POST['parent_organization_id'];
$organization_nm = $_POST['organization_nm'];
$tbr_organization_sysnm = $_POST['tbr_organization_sysnm'];
$type = $_POST['type'];
$contact_nm = $_POST['contact_nm'];
$financial_info = $_POST['financial_info'];
$other_info = $_POST['other_info'];
$active = $_POST['active'];
$url = $_POST['url'];
获取值后,我只是逃避它们并执行查询。
我已经找到了问题!
if(isset($_GET['id']))
{
$organization_id = $_GET['id'];
$parent_organization_id = $_POST['parent_id'];
$organization_nm = $_POST['org_nm'];
$tbr_organization_sysnm = $_POST['tbr_sysnm'];
$type = $_POST['type'];
$contact_nm = $_POST['contact_nm'];
$financial_info = $_POST['financial_info'];
$other_info = $_POST['other_info'];
$active = $_POST['active'];
$url = $_POST['url'];
我从表单中检索错误的值。这可以通过更改php代码或html代码来解决。
问题是,一个或多个字段空问题仍然存在。如果其中一个字段为空,则不保存该条目。我检查了日志,它输出的信息是:
PHP Notice: Undefined index: parent_id
PHP Notice: Undefined index: org_nm
PHP Notice: Undefined index: tbr_sysnm
如果我没有为任何字段写任何内容并尝试保存表单,就会发生这种情况。
编辑2:问题再次得到解决。做了一个var转储,发现当代码试图检索值时服务器没有给出任何东西。在一些领域中,这是一个拼写错误。
答案 0 :(得分:2)
您的表单输入可能没有name属性。仅当输入具有name属性且PHP $_POST
键将是属性的名称时,才会提交输入数据。
让我们看看OP的代码,看看我的猜测是否正确。