Bonjour,
Voila je rencontre un petit problème avec mon code.
Je suis relativement perdu vu l'arrête de tout ce que je fesais donc je recherche des conseils.
En gros, ce que j'esseye de faire, c'est d'utiliser une selectbox comme liens vers une div en ajax.
Un ami ma dit '' Utilises : ($produit, $produit_id) = explode('-', $_POST['selectbox']); "
VOICI LE CODE DE MA SELECT BOX
<select name="services" class="selectpicker form-control">
<optgroup label="service1">
<?php serv1_check($mysqli); ?>
</optgroup>
<optgroup label="service2">
<?php serv2_check($mysqli); ?>
</optgroup>
<optgroup label="service3">
<?php serv3_check($mysqli); ?>
</optgroup>
</select>
VOICI LE CODE POUR "GÉRER" LE LINK
<?php
$services = $_POST['services'];
list($produit, $produit_id) = explode('-', $_POST['services']);
?>
Sauf que je ne me rappel, plus dutout la syntaxe pour avoir un code fonctionnel.
Ce que je cherche à avoir, c'est que ça fonctionne.
Lorsque je clique sur un service en particulier, je voudrais que ça affiche une DIV avec les informations relative au service selectionné
-> https://fkcd.ca/Llx.png
J'obtiens rien vu que je ne sais pas comment faire.
Salut, tu peux peut être voir du côté Ajax avec json. C'est pareil que les listes liées !
voilà comment je fais:
partie html (là c'est un select mais ça peut très bien etre une div)
<div class="form-group">
<label for="sites" class="col-sm-4 control-label">Site</label>
<div class="col-sm-8">
<select name="sites" id="sites" class="form-control" required="" size="1">
<option value='' selected>Sélectionner un site...</option>
<?php foreach($list as $l):?>
<option value="<?php echo $l->IDSite;?>"><?php echo $l->NomSite;?></option>
<?php endforeach;?>
</select>
</div><!-- site -->
</div><!-- form-group-site -->
<?php echo form_error('sites', '<div class="text-right text-danger col-sm-12">', '</div>');?>
<div class="form-group">
<label for="sys" id="lib_sys" class="col-sm-4 control-label">Système</label>
<div class="col-sm-8 sys">
<select name="sys" id="sys" class="form-control" required="" size="1">
<option value='' selected>Sélectionner un système...</option>
</select>
</div><!-- sys -->
</div><!-- form-group-sys -->
partie js
var $site = $('#sites');
var $sys = $('#sys');
var $lib = $('#lib_sys');
$sys.hide();
$lib.hide();
// à la sélection d'un site dans la liste
$site.on('change', function() {
var val = $(this).val(); // on récupère la valeur du site
if(val != '') {
$sys.empty(); // on vide la liste des systeme
$.ajax({
url: "<?php echo site_url('ct/system/');?>/", //url vers traitement php
data: 'id_site='+ val, // on envoie $_GET['id_site']
dataType: 'json',
success: function(json) {
$lib.show();
$sys.show();
$.each(json, function(index, value) {
$sys.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
}
});
partie php
function system(){
if(isset($_GET['go']) || isset($_GET['id_site'])){
$this->load->model('ct_model');
$json = array();
$id = htmlentities(intval($_GET['id_site']));
$data['sys'] =$this->ct_model->listSys($id);
foreach ($data['sys'] as $s){
$json[$s->IDSysteme][] = utf8_encode($s->Designation);
}
echo json_encode($json);
}
}
La partie php est en POO mais le principe est simple.
Dès que tu séléctiones une valeur dans ta liste, on envoie le résultat a la partie php via javascript en get.
Ensuite dans la partie php tu récupère la valeur du get, tu fais une requête qui va bien et tu encode en json
Enfin dès qu'on a un retour json, la fonction append te permet d'affecter ce que tu veux à un élément.
J'essaie d'être clair en esperant t'avoir aidé ;)
J'aime quand les sujets sont résolu.......mais toujours pas la solution !
Peut etre un manque de respect envers les personnes qui propose de l'aide !!! Enfin je dis ça, je dit rien :/
Je n'avais même pas recus de messag disant que javais des réponses xD calmos.. Facile de juger sans savoir hein...
Voila :)
<?php
$uid = (int)$_SESSION['user_id'];
list($produit, $produit_id) = explode('-', $_POST['services']);
$produit_id = (int)$bob_id;
if ($bobo != 'boss' && $bob != 'bobbette' && $bob != 'bobinette') {die('Choose a service available.');}
$sql = "SELECT * FROM $bob WHERE u_id = $uid AND id = $bob_id";
$result = $mysqli->query($sql);
if ($row = $result->fetch_assoc()) {
include "service_$produit.php";
} else {
echo "oops !";
}
?>
Ensuite pour le selectbox :
<select name="boblist" class="selectpicker form-control" onchange="this.form.submit()">
<option selected="selected">Choose your bob</option>
<optgroup label="bobo">
<?php call a function here ?>
</optgroup>
<optgroup label="bobette">
<?php call a function here ?>
</optgroup>
<optgroup label="bob">
<?php call a function here ?>
</optgroup>
</select>
Bonne fin de journée.