【问题标题】:Store SQL variable from dropdown in PHP form以 PHP 形式从下拉列表中存储 SQL 变量
【发布时间】:2014-10-30 13:01:15
【问题描述】:

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

使用 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['debtor_id_invoice'];

我的重点是, 我确实得到了带有从 SQL 中提取的正确值的下拉列表。但我不太确定如何将所选值存储在 POST 信息中。因为在那一刻我的变量保持为空。 (我仔细检查了变量以查看它是否真的为空)。

任何人都可以指出将下拉选择存储在 POST 变量中的解决方案吗? (一直在谷歌搜索,但可能是错误的值或其他东西,我被卡住了:-S)

谢谢, 冷酷

【问题讨论】:

    标签: php html sql


    【解决方案1】:

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

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

    【讨论】:

    • 感谢对bltobs的贡献看看你要去哪里,刚刚尝试过。一样。所选值未以 $_POST 形式存储。我的双重检查 $debtor_id_invoice=$_POST['debtor_id_invoice'];不返回任何值。
    • 谢谢大家,多亏了你解决了。来自 tobltobs 的代码以及 andre3wap 和 emipro 看到的更正错误一起工作!谢谢大家!想想看代码的时候我的视力肯定有问题;-)
    【解决方案2】:

    我认为 $_POST['debtor_id_invoice'] 中的 select 名称错误。它是debentor_invoice_id

    【讨论】:

    • 你说的太对了。感谢您对其进行了更改,但仍然没有返回值。
    • 太好了。如果您觉得有用,请投票或接受答案
    【解决方案3】:

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

    但是,在您的$_POST 中有; $debtor_id_invoice=$_POST['debtor_id_invoice'];

    你的帖子应该是$debtor_invoice_id=$_POST['debtor_invoice_id'];

    【讨论】:

    • 你说的太对了。感谢您对其进行了更改,但仍然没有返回值。
    【解决方案4】:

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

    • 您在查询的 FROM 部分中缺少 wordpress (mysql) 表前缀 $wpdb-&gt;prefix。 Wordpress 使用它为所有表格添加前缀(您也应该这样做)。
    • 您的 html 似乎无效:在 while 循环之前关闭选项标记而不打开它&lt;/option&gt;
    • 您的 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>";
    }
    

    【讨论】:

    • 谢谢乔尔,也修复了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多