par
L'@uvergnat » 10 févr. 2015, 17:55
Bonjour,
Après des heures et des heures de recherches, des centaines de pages consultées et autant de tests j'ai trouvé la solution.
Mieux qu'un lien vers une recherche google

, voici ce que cela donne :
la base de donnée
j'ai 2 tables
l'une MaTableSelect qui contient 2 champs : ID et Description. c'est cette table qui alimente mon <select>
L'autre MaTableDeDonnees qui contient 3 champs : ID , Champ1, Champ2 . C'est la table qui va alimenter les <input>
Les fichiers
le fichier principal.php est le fichier principal
le fichier requete_sql.php est le fichier contenant la requete php qui va etre appelée par l'AJAX
Bon, ce n'est peut etre pas codé correctement mais cela fonctionne ! Les puristes y trouveront surement quelque chose à redire et je leur laisse le soin d’apporter toutes les subtilités possibles !
Voila en espérant que mes heures de recherche puissent servir à d'autres !
Voici les fichiers
principal.php
Code : Tout sélectionner
<?php require_once('../../Connections/connexionamabase.php'); // connexion à la BDD
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
// requette sur la table MaTableSelect qui contient les datas du <select>
mysql_select_db($database_Consult_ext, $Connect);// connexion à la BDD
$query_Recordset_Code = "SELECT * FROM MaTableSelect ";
$Recordset_Code = mysql_query($query_Recordset_Code, $Connect) or die(mysql_error());
$row_Recordset_Code = mysql_fetch_assoc($Recordset_Code);
$totalRows_Recordset_Code = mysql_num_rows($Recordset_Code);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script src="../../lib/jquery/jquery-2.1.0.min.js"></script>
<script>
$(document).ready(function () {
$("#MonSelect").change(function(){
var id=$('#MonSelect').val();
$.ajax({
type: "POST",
data: {"ID" : id}, // c'est le $_POST['ID'] du fichier requete_sql.php
url: "./requete_sql.php", // appel du fichier de traitement sur la table MaTableDeDonnees
success:function(data){
var Text = JSON.parse(data);
$("#input_text").val(Text.Champ1);
$("#input_text2").val(Text.Champ2);
}
});
});
});
</script>
</head>
<body>
<select name="MonSelect" id ="MonSelect" >
<option value=""selected="selected"><-- Choix Code --> </option>
<?php
do {
?>
<option value="<?php echo $row_Recordset_Code['ID']?>" ><?php echo $row_Recordset_Code['Description']?></option>
<?php
} while ($row_Recordset_Code = mysql_fetch_assoc($Recordset_Code));
$rows = mysql_num_rows($Recordset_Code);
if($rows > 0) {
mysql_data_seek($Recordset_Code, 0);
$row_Recordset_Code = mysql_fetch_assoc($Recordset_Code);
}
?>
</select>
<input name="input_text" type="text" id="input_text" value="" size="30" />
<input name="input_text2" type="text" id="input_text2" value="" size="10" />
</body>
</html>
requete_SQL.php
Code : Tout sélectionner
<?php include('../../Connections/connexionamabase.php');
$ID = $_POST['ID'];
mysql_select_db($database_Consult_ext, $Consult_ext);
$query_Recordset_Code = "SELECT * FROM MaTableDeDonnees WHERE ID = '$ID'";
$Recordset_Code = mysql_query($query_Recordset_Code, $Consult_ext) or die(mysql_error());
$row_Recordset_Code = mysql_fetch_assoc($Recordset_Code);
$totalRows_Recordset_Code = mysql_num_rows($Recordset_Code);
echo json_encode($row_Recordset_Code); // le résultat de la requete est envoyé dans un JSON
?>
Bonjour,
Après des heures et des heures de recherches, des centaines de pages consultées et autant de tests j'ai trouvé la solution.
Mieux qu'un lien vers une recherche google :wink: , voici ce que cela donne :
la base de donnée
j'ai 2 tables
l'une MaTableSelect qui contient 2 champs : ID et Description. c'est cette table qui alimente mon <select>
L'autre MaTableDeDonnees qui contient 3 champs : ID , Champ1, Champ2 . C'est la table qui va alimenter les <input>
Les fichiers
le fichier principal.php est le fichier principal
le fichier requete_sql.php est le fichier contenant la requete php qui va etre appelée par l'AJAX
Bon, ce n'est peut etre pas codé correctement mais cela fonctionne ! Les puristes y trouveront surement quelque chose à redire et je leur laisse le soin d’apporter toutes les subtilités possibles !
Voila en espérant que mes heures de recherche puissent servir à d'autres !
Voici les fichiers
[b]principal.php[/b]
[code]<?php require_once('../../Connections/connexionamabase.php'); // connexion à la BDD
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
// requette sur la table MaTableSelect qui contient les datas du <select>
mysql_select_db($database_Consult_ext, $Connect);// connexion à la BDD
$query_Recordset_Code = "SELECT * FROM MaTableSelect ";
$Recordset_Code = mysql_query($query_Recordset_Code, $Connect) or die(mysql_error());
$row_Recordset_Code = mysql_fetch_assoc($Recordset_Code);
$totalRows_Recordset_Code = mysql_num_rows($Recordset_Code);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script src="../../lib/jquery/jquery-2.1.0.min.js"></script>
<script>
$(document).ready(function () {
$("#MonSelect").change(function(){
var id=$('#MonSelect').val();
$.ajax({
type: "POST",
data: {"ID" : id}, // c'est le $_POST['ID'] du fichier requete_sql.php
url: "./requete_sql.php", // appel du fichier de traitement sur la table MaTableDeDonnees
success:function(data){
var Text = JSON.parse(data);
$("#input_text").val(Text.Champ1);
$("#input_text2").val(Text.Champ2);
}
});
});
});
</script>
</head>
<body>
<select name="MonSelect" id ="MonSelect" >
<option value=""selected="selected"><-- Choix Code --> </option>
<?php
do {
?>
<option value="<?php echo $row_Recordset_Code['ID']?>" ><?php echo $row_Recordset_Code['Description']?></option>
<?php
} while ($row_Recordset_Code = mysql_fetch_assoc($Recordset_Code));
$rows = mysql_num_rows($Recordset_Code);
if($rows > 0) {
mysql_data_seek($Recordset_Code, 0);
$row_Recordset_Code = mysql_fetch_assoc($Recordset_Code);
}
?>
</select>
<input name="input_text" type="text" id="input_text" value="" size="30" />
<input name="input_text2" type="text" id="input_text2" value="" size="10" />
</body>
</html>[/code]
requete_SQL.php
[code]<?php include('../../Connections/connexionamabase.php');
$ID = $_POST['ID'];
mysql_select_db($database_Consult_ext, $Consult_ext);
$query_Recordset_Code = "SELECT * FROM MaTableDeDonnees WHERE ID = '$ID'";
$Recordset_Code = mysql_query($query_Recordset_Code, $Consult_ext) or die(mysql_error());
$row_Recordset_Code = mysql_fetch_assoc($Recordset_Code);
$totalRows_Recordset_Code = mysql_num_rows($Recordset_Code);
echo json_encode($row_Recordset_Code); // le résultat de la requete est envoyé dans un JSON
?>[/code]