Bonjour je reviens vers vous sur un nouveau problème, toujours sur mon formulaire : j'ai crée une liste d'un select venant d'une bdd mysql:
Contenu table contents_languagess:
Contenu table users:
Contenu table users_languages:
Partie de la page profil :
Partie de la page profil :
Le problème c'est que dans le select je veux choisir la langue par defaut, et la checkbox permet de mettre différente version. Tout ce fait dans La table "users_languages", si la langue choisi dans le select est français, il faut que le français soit choisit dans la chechbox, et ainsi mettre 'default_lang' dans la colonne à 1.
Voici l'image correspondant du formulaire :
Si vous avez une idée pour m'orienter...
Cordialement
Modifié par phoenixiki (29 Jun 2017 - 14:36)
Contenu table contents_languagess:
CREATE TABLE `contents_languages` (
`id` int(11) NOT NULL,
`namelang` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`country` varchar(2) NOT NULL,
`language` varchar(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `contents_languages` (`id`, `namelang`, `country`, `language`) VALUES
(1, 'Français', 'fr', 'Fr'),
(2, 'English', 'en', 'Uk'),
(3, 'Chinese', 'zh', 'Zh'),
(4, 'Spanish', 'es', 'Es'),
(5, 'Russian', 'ru', 'Ru');
Contenu table users:
CREATE TABLE `users` (
`id` int(11) NOT NULL,
`mail` varchar(100) NOT NULL,
`password` varchar(255) NOT NULL,
`name` varchar(60) NOT NULL,
`firstname` varchar(30) NOT NULL,
`phone` int(20) DEFAULT NULL,
`url` varchar(255) DEFAULT NULL,
`adress` text,
`zipcode` int(11) DEFAULT NULL,
`city` varchar(200) DEFAULT NULL,
`countries_id` int(11) DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Contenu table users_languages:
CREATE TABLE `users_languages` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`contents_languages_id` int(11) DEFAULT NULL,
`default_lang` tinyint(1) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Partie de la page profil :
if ( isset($_POST['languages']) && is_array($_POST['languages']) AND isset($donnees['namelang']) AND (in_array($namelang, $languages))) {
$languages = implode(",", $_POST['languages']) ;
$i=$_POST['languages'];
for ($i=0;$i<count($languages);$i++){
$languages = $languages[$i];
}
bdd_insert( 'INSERT INTO users_languages (contents_languages_id, default_lang, user_id) VALUES (:contents_languages_id, :default_lang, :user_id)', [
'contents_languages_id' => $languages,
'default_lang' => 0,
'user_id' => $_SESSION['id']
] );
}else{
echo "La langue par défaut n'est pas sélectionner";
}
}
Partie de la page profil :
<p><label for=language>Your language :</label>
<select name="namelang" id="namelang">
<option value="">Langue par default</option>
<?php
$reponse = $bdd->query("SELECT c.id, c.namelang, u.user_id FROM `contents_languages` `c` LEFT JOIN `users_languages` `u` ON u.id = '".$_SESSION['id']."'");
while($donnees = $reponse->fetch()){
$selected = ($donnees['id'] == $donnees['namelang']) ? ' selected="selected"' : '';
echo '<option value="'.$donnees['id'].'"'.$selected.'>'.$donnees['namelang'].'</option>';
}
$reponse->closeCursor();
?>
</select>
</p>
<p><label for=version>Version of turistics<br> information :</label> <br><br>
<input type="checkbox" name="languages[1]" id="lang" value="1"
<?php if(isset($_POST['languages'][1])) echo 'checked="checked"';?>/>English
<input type="checkbox" name="languages[2]" id="lang" value="2"
<?php if(isset($_POST['languages'][2])) echo 'checked="checked"';?>/>French
<input type="checkbox" name="languages[3]" id="lang" value="3"
<?php if(isset($_POST['languages'][3]))echo 'checked="checked"';?>/>Chinese
<input type="checkbox" name="languages[4]" id="lang" value="4"
<?php if(isset($_POST['languages'][4])) echo 'checked="checked"';?>/>Spanish
<input type="checkbox" name="languages[5]" id="lang" value="5"
<?php if(isset($_POST['languages'][5])) echo 'checked="checked"';?>/>Russian</p></p>
Le problème c'est que dans le select je veux choisir la langue par defaut, et la checkbox permet de mettre différente version. Tout ce fait dans La table "users_languages", si la langue choisi dans le select est français, il faut que le français soit choisit dans la chechbox, et ainsi mettre 'default_lang' dans la colonne à 1.
Voici l'image correspondant du formulaire :
Si vous avez une idée pour m'orienter...
Cordialement
Modifié par phoenixiki (29 Jun 2017 - 14:36)