以PHP格式从下拉列表中存储SQL变量

时间:2014-10-30 13:01:16

标签: php html sql

我正在编写一段代码,用于根据多个数据创建发票。

使用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_invoice = $ _ POST [&#39; debtor_id_invoice&#39;];

我的全部意义是, 我确实从下拉列表中获取了从SQL中提取的正确值。但我不太确定如何将所选值存储在POST信息中。因为在那一刻我的变量保持空白。 (我做了一个双重检查以回显变量,看它是否真的是空的。)

有人能指出将下拉选项存储在POST变量中的解决方案吗? (谷歌搜索,但可能是错误的价值观或东西,我被困:-S)

谢谢, 严峻

4 个答案:

答案 0 :(得分:0)

创建选择的部分看起来不对。尝试:

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>";
}

答案 1 :(得分:0)

我认为选择名称在$ _POST ['debtor_id_invoice']中是错误的。这是debtor_invoice_id

答案 2 :(得分:0)

您的变量名称不正确。在您的表单中,您有name="debtor_invoice_id"

然而,在你的$_POST中; $debtor_id_invoice=$_POST['debtor_id_invoice'];

您的帖子应为$debtor_invoice_id=$_POST['debtor_invoice_id'];

答案 3 :(得分:0)

我在你的代码中发现了一些问题(最后一个是你在哪里寻找的):

  • 您在查询的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>";
}
相关问题