0

我正在尝试为表单中的几个 html 选项元素编写一个通用函数。每个元素的选项列表都会有所不同,所以我想要做的是根据在我的 mysql 表中引用它们的“id”显示选项,这将是一个数组。该表有 2 列,第一个“id”只是一个数字,第二个“prod_option”是我想要显示的值。请有人可以解释我的代码有什么问题吗?

这是我在 select 元素中调用函数的地方。我的连接没有问题。

//This should select 'prod_option' for id's 1,2 & 3 for example
<td><div class="formInput"><label>Cap or Vac:</label>
<select name="pack_req" id="pack_req[]" 
value="**<?php $newProd->packRequirements(1,2,3); ?>**" /></select></div></td>


//function in class
public function packRequirements($values){
$con = $this->connection;
$itms = array($values);

$sql = $con->query("SELECT `prod_option` 
FROM `packaging_requirements` 
WHERE `id`    IN('".implode("', '", $itms)."')"); 

while($r = $sql->fetch_array(MYSQLI_ASSOC)):
echo '<option value="'$itms['prod_option']'"</option>';  
endwhile;

}
4

5 回答 5

1

您可能希望将您的功能放在选择标签之间,例如:

<select><?php $newProd->packRequirements(1,2,3); ?></select>

代替:

<select value="**<?php $newProd->packRequirements(1,2,3); ?>**"></select>
于 2012-04-18T12:40:00.613 回答
1

您的 HTML 似乎是错误的。选择是这样的:

<select name="myname">
    <option value="42">Everything</option>
</select>

但是相反,您的代码会生成

<select name="pack_req" id="pack_req[]" value="**<option value=".
于 2012-04-18T12:40:55.183 回答
0

you have to write like this:

<select name='selectName'><?php newProd->packRequirements(array(1,2,3)) ?></select>



public function packRequirements($itms = array()) {
   $con = $this->connection;

   $sql = $con->query("SELECT `prod_option` FROM `packaging_requirements` WHERE `id` IN('" . implode(",", $itms) . "')"); 

  while($r = $sql->fetch_array(MYSQLI_ASSOC)) {
     echo '<option value="' . $r['prod_option'] . '">' . $r['prod_option'] . '</option>';
  }
}
于 2012-04-18T12:56:08.500 回答
0
<td><div class="formInput"><label>Cap or Vac:</label>
<select name="pack_req" id="pack_req[]">
**<?php $newProd->packRequirements(1,2,3); ?>**</select></div></td>


//function in class
public function packRequirements($values){
$con = $this->connection;
$itms = array($values);

$sql = $con->query("SELECT `prod_option` 
FROM `packaging_requirements` 
WHERE `id`    IN('".implode("', '", $itms)."')"); 

while($r = $sql->fetch_array(MYSQLI_ASSOC)):
echo '<option value=".$itms['prod_option'].">'.$itms['prod_option'].'</option>';  
endwhile;

}
于 2012-04-18T12:50:23.837 回答
0

尝试这个 :

public function packRequirements($values = array())
{
   $result ='';
   $string =  implode(',', $values);

   $sql = $con->query("SELECT `prod_option` 
                      FROM `packaging_requirements` 
                      WHERE `id`    IN('".$string."')");
   while($r = $sql->fetch_array(MYSQLI_ASSOC)){
        $result .= '<option value=".$r['prod_option'].">'.$r['prod_option'].'</option>';  
   }
 return $result;

}

<select name="pack_req" id="pack_req[]">
**<?php echo $newProd->packRequirements(arra(1,2,3)); ?>**
</select>
于 2012-04-18T14:32:42.183 回答