我想编写一个自定义表单,通过查找机器的序列号来筛选出我感兴趣的行,以提供所有其他信息(例如全名和电子邮件),这样我就可以让用户指出修改其他信息的详细信息。
<?php
/*
Template Name: Details Edit
*/
get_header();
?>
<body>
<div style="width:800px; margin:0 auto;">
<form action="" method="post"><br><br>
<label for="search"> Search (Machine S/N) To Edit: <br>
<input id="search" style="width:400px; margin:auto;" type="text" name="search" value="" required/>
</label><br>
<input type="submit" name="submit" value="Search">
<input type="reset"> <br><br>
</form>
</div>
</body>
<?php
$search = \'\';
if( isset($_POST[\'submit\'])){
$search = isset($_POST[\'search\']) ? $_POST[\'search\'] : \'\';
global $wpdb;
$result = $wpdb->get_results ( " SELECT * FROM patient_details WHERE m_sn = \'$search\'" );
if ($result>0){
foreach ( $result as $page )
{ ?>
<div style="width:800px; margin:0 auto;">
<form action="" method="post">
<label for="_p_name"> Name: <br>
<input id="_p_name" style="width:400px; margin:auto;" type="text" name="_p_name" value="<?php echo $page->p_name; ?> " required/>
</label><br>
<label for="_email"> Email Address: <br>
<input id="_email" style="width:400px; margin:auto;" type="text" name="_email" value="<?php echo $page->email; ?>" required/>
</label><br>
<label for="_m_sn"> Machine Serial Number <br>
<input id="_m_sn" style="width:400px; margin:auto;" type="text" name="_m_sn" value="<?php echo $page->m_sn; ?>">
</label><br>
<input type="checkbox" id="checkbox" required/>
<label for="checkbox"> I have checked the information are correct.
</label><br><br>
<input type="submit" name="update" value="Update">
<br><br>
</form>
</div>
<?php
echo \'<pre>\';
print_r($_POST);
$_p_name = $_email = $_m_sn = \'\';
if ( isset($_POST[\'submit\'])){
$_p_name = isset($_POST[\'_p_name\']) ? $_POST[\'_p_name\'] : \'\';
$_email = isset($_POST[\'_email\']) ? $_POST[\'_email\'] : \'\';
$_m_sn = isset($_POST[\'_m_sn\']) ? $_POST[\'_m_sn\'] : \'\';
global $wpdb;
$sql=$wpdb->query(" UPDATE `patient_details` SET `p_name`=\'$_p_name\',`email`=\'$_email\',`m_sn`=\'$_m_sn\' WHERE `p_id` = \'$page->p_id\' ");
?>
<?php
};
}
} ?>
<?php
getfooter();
?>
上面写着
echo \'<pre>\';
print_r($_POST);
旨在告诉我表单中输入了什么,但我收到了以下反馈:
Array
(
[search] => P1234567890B
[submit] => Search
)
所以,我需要帮助如何让程序检测“的输入”_p\\U名称“"E_电子邮件“;是否使用更新功能形成和修改?或者,您有什么建议可以让我更好地编写此程序;向上搜索以允许用户修改数据库表中的详细信息;?谢谢你!非常感谢您的帮助
SO网友:Muhammad Saqib Sarwar
我有一些意见/建议可能会有所帮助。
您应该在搜索表单中使用GET方法而不是POST方法,以便在更新表单中使用POST方法。
更新查询不应是生成更新表单的循环的一部分。我建议将更新代码移到文件的顶部,并将其置于可用核心字段的条件下。
更新表单中没有具有p\\U id名称的字段,因此请为其包含一个隐藏字段,并根据该字段的值更新数据库。
还要确保所有生成的标记都显示在body标记中。
希望在进行这些更改后,您将拥有更好的代码结构,并且还能够解决任何遗留问题。
祝你好运