Bonjour,

Mon problème reel est d'affecter des parkings à des appartements, mais je ne peux affecter ces parkings qu'une fois. Je pars donc d'une base de données ou tous mes lots sont repertoriés et ou mes parkings sont proposés sous forme d'une liste de select dans la deuxième colonne du tableau.

Pour cela, je souhaite utiliser jeditable et proposer les choix provenant de ma base de données. Mais je souhaiterai qu'à chaque sélection les valeurs de mes champs select soient rechargés pour eviter des doublons.

pour l'instant mon code ressemble à ça

Fichier principal

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?PHP 
include ("connection_base.php");
 
 
echo'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >'; 
echo'<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />';
//CSS
echo'<link rel="StyleSheet" type="text/css" href="css/custom-theme/jquery-ui-1.8.5.custom.css"  />';	
 
//Javascript
echo'	<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>';
echo'	<script type="text/javascript" src="js/jquery-ui-1.8.5.custom.min.js">';
echo' <script type="text/javascript" src ="js/jeditable.js" > </script>' ;
?>
 
<script type="text/javascript">
 $(document).ready(function() { 
 
          $('.editabledyn').editable('save_editable2.php', { 
     loadurl : 'json.php',
     type   : 'select',
     submit : 'OK'
 });
           }); 
  </script>
 
 
<?php
echo'<title>essai</title>';
echo'</head>'; 
echo'  <body >' ; 
 
echo'<form name="formulaire" id="formulaire"   >'; 
 
//recuperation des valeurs de la table
$sql="select * from editable where type='L'";
   $result=mysql_query($sql)or die (mysql_error()); $i=0;
   while($row=mysql_fetch_array($result,MYSQL_ASSOC))
   {
   $ref[$i]= $row['ref'];
   $n_appt[$i] =  $row['n_appt'];
   $n_pkg[$i] =  $row['pkg'];
   $type[$i] =  $row['type'];
   $i+=1;
   }
$nombre=$i;
   
echo'<br /><br />';
 
echo'<table >';
 
for ($i=0;$i<$nombre;$i++)
{
echo'<tr><td>',$ref[$i],'</td><td>',$n_appt[$i],'</td><td><div class="editabledyn" id="', $ref[$i],'">  ',$n_pkg[$i],' </div></td></tr>';
 
}
echo'</table>';
echo'</form>'; 
echo'</body></html>';
     
?>
fichier de sauvegarde

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?php
 include("connection_base.php");
$table="editable";
 $value=$_POST['value'];
 $position=$_POST['id'];
 
$sql="UPDATE $table set pkg='$value' Where ref =$position";
$result=mysql_query($sql)or die (mysql_error());
 
?>

fichier de determination des select

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?php
 include("connection_base.php");
 $table="editable";
$sql="select n_appt from editable where type ='P' ";
   $result=mysql_query($sql)or die (mysql_error());
        $i=0;   $array[''] =  '';
        while($row=mysql_fetch_array($result,MYSQL_ASSOC))
        {   $array[ $row['n_appt']] =  $row['n_appt'];  }
  $array['selected'] =  '';
 print json_encode($array);
 ?>
base de données simplifiée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE TABLE IF NOT EXISTS `editable` (
  `ref` int(11) NOT NULL AUTO_INCREMENT,
  `n_appt` varchar(10) NOT NULL,
  `pkg` varchar(20) NOT NULL,
  `type` enum('L','P') NOT NULL,
  PRIMARY KEY (`ref`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
 
--
-- Contenu de la table `editable`
--
 
INSERT INTO `editable` (`ref`, `n_appt`, `pkg`, `type`) VALUES
(1, 'A 001', 'P 002', 'L'),
(2, 'A 002', 'P 003', 'L'),
(3, 'A 003', 'P 004', 'L'),
(4, 'P 001', '', 'P'),
(5, 'P 002', '', 'P'),
(6, 'P 003', '', 'P'),
(8, 'A 005', '', 'L'),
(7, 'P 004', '', 'P'),
(9, 'P 005', '', 'P');
A l'heure actuelle tout fonctionne plutôt bien sauf que le fichier json ne se charge qu'au début et une fois pour toutes alors que je souhaiterai qu'il se recharge avant ou après chaque requête .

Merci de vos lumières sur ce sujet