私はここで新しいので、私の質問に関して何かを間違って行った場合は、「穏やか」で、私が間違っている箇所についての指導をしてください。マルチ選択は、選択した1つのオプションのみを保存します。 (最後に選択したもの)
タイトルごとに、Joomlaの拡張機能に「マルチ選択」フィールドを追加しようとしています。ここでは、オプションは管理者パネルのアイテムビューで選択されています。 すべてが正しく表示されているようですが、アイテムを保存すると、最後に選択されたものだけが選択されたオプションの中から保存されます。
ここはアイテムビューで使用したコードです。
<?php if (count($this->multiselects) > 0): ?>
<?php foreach ($this->multiselects as $field): ?>
<li><label for="additional_multiselect[<?php echo $field->id ?>]"><?php echo $field->name ?></label>
<select multiple="multiple" name="additional_multiselect[<?php echo $field->id ?>]">
<option value=""></option>
<?php
$values = explode(PHP_EOL, $field->values);
foreach ($values as $v)
{
?>
<option value="<?php echo $v ?>"<?php if (trim($v) == trim($this->multiselect_values[$field->id])) echo 'selected="selected"' ?>><?php echo $v ?></option>
<?php
}
?>
</select>
</li>
<?php endforeach; ?>
<?php endif; ?>
名前の後に[]を追加しようとしましたが、これはうまくいかなかったようです。私はまた、名前のフィールド - > id部分の周りからそれらを削除し、最後に追加しようとしましたが、これはうまくいかないようです。
私が間違ってしまった箇所を見つけて、正しい方向に向けることができますか?
を[]と保存しようとすると、以下のようなエラーコードが表示されます(ID番号に応じて、#をプレフィックスに置き換えます)。 1054 'フィールドリスト'で不明な列 'Array' SQL = INSERT INTO '#_lister_multiselect_value'(multiselect_id、multiselect_value、item_id)VALUES( '1'、Array、 '6383') これは、うまくいかなかった。 私は保存コードに誤りがあったと思いますか? –
SQLクエリを修正する必要があります。 u_molderで述べたように反復するか、すべての項目を別々の行として挿入するか、単一行として保存する場合はPHPのimplodeを使用します。次に例を示します。$ All_Items_Separated_By_Commas = implode( "、"、$ your_array); –