我正在编写一段代码,用于从多条数据创建发票。
使用html表单插入数据。相关代码行是,
<form method="post" action="">
<label id="icon" for="debtor_id_invoice">Debtor :</label><?php echo debtors_dropdown(); ?>
这将调用位于同一文件中的debtors_dropdown函数。下拉功能是,
function debtors_dropdown() {
global $wpdb;
$sql_debtor = "SELECT `debtors_companyname`, `debtors_id`, `debtors_initials`, `debtors_surname` FROM `debtors` ORDER BY `debtors_surname`";
$rows = $wpdb->get_results($sql_debtor);
echo "<select name=debtor_invoice_id=''>Debtor</option>";
foreach ($rows as $row){
echo "<option value=>{$row->debtors_id} - {$row->debtors_surname}, {$row->debtors_initials}</option>";}
echo "</select>";
}
根据我的表格,我使用变量,$debtor_id_vinvoice=$_POST['debtor_id_voice'];
我的全部观点是,我确实得到了从SQL中提取的正确值的下拉列表。但是我不太确定如何将所选的值存储在POST信息中。因为目前我的变量为空。(我做了两次检查,以回显变量,看看它是否真的是空的)。
有人能指出一个将下拉选择存储在POST变量中的解决方案吗?(一直在谷歌上搜索,但可能是在错误的值上,我被卡住了:-S)
谢谢,严峻的
创建选择的部分看起来是错误的。尝试:
echo '<select name="debtor_invoice_id">Debtor</option>';
foreach ($rows as $row){
echo '<option value="'.$row->debtors_id.'">'.$row->debtors_surname.', '.$row->debtors_initials.'</option>'; }
echo "</select>";
}
我认为$_POST['debtor_id_invoice']中的select名称错误。它是debtor_invoice_id
变量名称不正确。在您的表格中,您有name="debtor_invoice_id"
但是,在您的$_POST
中,您有;$debtor_id_invoice=$_POST['debtor_id_invoice'];
您的帖子应该是$debtor_invoice_id=$_POST['debtor_invoice_id'];
我在您的代码中发现了一些问题(最后一个是您要查找的问题):
- 查询的FROM部分中缺少wordpress(mysql)表前缀
$wpdb->prefix
。Wordpress使用这个来为所有的表加前缀(你也应该这样做) - 您的html似乎无效:在循环
</option>
时关闭选项标记而不打开它 - 您的html选项标记值也是无效的,它应该是:
value="{your data}"
固定
function debtors_dropdown() {
global $wpdb;
$sql_debtor = "SELECT `debtors_companyname`, `debtors_id`, `debtors_initials`, `debtors_surname`
FROM `".$wpdb->prefix."debtors` ORDER BY `debtors_surname`";
$rows = $wpdb->get_results($sql_debtor);
echo "<select name=debtor_invoice_id=''><option>Debtor</option>";
foreach ($rows as $row){
echo "<option value='{$row->debtors_id}'> {$row->debtors_surname}, {$row->debtors_initials} </option>";}
echo "</select>";
}