複数選択からPHPを使用してデータを取得しようとしています。選択リストを作成し、MySQL データベースからの情報を入力するコードは次のとおりです。
<select title="Basic example" multiple="multiple" name="id_categorie[]" size="3">
<?php
include_once('../../modeles/class_Categorie.php');
include_once '../../core/connx.php';
foreach(Categorie::getAllCategorie()as $cat ){
$categorie= new Categorie($cat->ID_CAT);
echo '<option value="'.$categorie->getIDCategorie().'">'.$categorie->getNomCategorie().'</option>';
}
?>
</select>
フォームは、メソッドを使用して値を、ステートメントを使用しようとするPOST
URLに送信します。addArticle.php
implode()
include_once '../core/connx.php';
include_once('../modeles/class_Article.php');
include_once('../modeles/class_Image.php');
include_once '../modeles/class.upload.php';
$id=Article::creatArticle(0,$_POST['title'],implode(', ', $_POST['id_categorie']),$_POST['article']);
insertionImage($id,'img1');
function insertionImage($id,$img){
$obj_img = new upload('../views/img/file/', $img);
$obj_img->cl_taille_maxi = 1048579900000;
$obj_img->cl_extensions = array('.gif','.jpg','.png','.jpeg'); // on attribut les extensions autorisées
$obj_img->cl_nb_char_aleatoire = 15;
if (!$obj_img->uploadFichier('aleatoire')){
$erreur=$obj_img->affichageErreur();
}
else {
$chemin=$obj_img->cGetNameFileFinal();
Image::addImage($id,$chemin);
}
}
そして、記事クラスを追加する関数Article
:
/**
* function créeArticle
*/
public static function creatArticle($id_article,$title,$id_categorie,$article)
{
global $db;
$req = $db->prepare("INSERT INTO blog (ID_BLOG,TITLE,ID_CAT, ARTICLE,DATE) VALUES ('',:title,:id_categorie,:article,'".date('Y-m-d')."')");
$ok = $req->execute(Array('title' =>$title,'id_categorie' => $id_categorie,'article' => $article));
return $db->lastInsertId();
//$erreur = $req->errorInfo();
}
問題は、複数の値を選択すると、フォームから最初に選択したオプションしか取得できないことです。選択したすべての値を取得するにはどうすればよいですか?