Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以PHP形式存储下拉列表中的SQL变量_Php_Html_Sql - Fatal编程技术网

以PHP形式存储下拉列表中的SQL变量

以PHP形式存储下拉列表中的SQL变量,php,html,sql,Php,Html,Sql,我正在编写一段代码,用于从多个数据段创建发票 使用html表单插入数据。相关的代码行是 <form method="post" action=""> <label id="icon" for="debtor_id_invoice">Debtor :</label><?php echo debtors_dropdown(); ?> 这将调用位于同一文件中的debtors_下拉函数。下拉功能是 function debtors_dropdown()

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

使用html表单插入数据。相关的代码行是

<form method="post" action="">
<label id="icon" for="debtor_id_invoice">Debtor :</label><?php echo debtors_dropdown(); ?>
这将调用位于同一文件中的debtors_下拉函数。下拉功能是

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

谢谢,
Grim

创建select的零件看起来有误。尝试:

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

我认为select的名称在$u POST['debtor\u id\u invoice']中是错误的。您的变量名称不正确,这是因为您的发票id不正确。在您的表格中,您的姓名=债务人\发票\ id

然而,在你的$u帖子中,你有$债务人id发票=$过账[“债务人id发票]


您的帖子应该是$debtor\u invoice\u id=$\u post['debtor\u invoice\u id'

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

查询中缺少wordpress mysql表前缀$wpdb->prefix。Wordpress使用它作为所有表的前缀,您也应该这样做。 您的html似乎无效:关闭选项标记而不在while循环之前打开它 您的html选项标记值无效,它应该是:value={your data} 修理
多亏了Toblobs的贡献,看看你要去哪里,试试看。同样的事情。所选值未存储在$\u POST表单中。我的双重支票$debtor\u id\u invoice=$\u POST['debtor\u id\u invoice'];没有返回值。谢谢大家,谢谢你们解决了它。来自tobltobs的代码以及andre3wap&emipro works看到的更正错误!谢谢大家!我想我的视力一定是在看代码时受到了影响-你说的太对了。谢谢你改变了它,但仍然没有价值回报。太好了。请投赞成票或接受答案,如果你觉得它是有用的,你是如此真实。谢谢你改变了它,但仍然没有价值回报。谢谢乔尔,也修复了。
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>";
}