0

フォーム内にあるいくつかの html オプション要素のユニバーサル関数を作成しようとしています。オプション リストは要素ごとに異なるため、mysql テーブルでそれらを参照する「id」に基づいてオプションを表示します。これは配列になります。テーブルには 2 つの列があります。最初の 'id' は単なる数字で、2 番目の '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 タグの間に関数を配置するとよいでしょう。

<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
<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

次のように書く必要があります。

<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

これを試して :

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 に答える