[PHP+JS]BDD + Tableau html probleme lecture dans la BDD [Résolu]

Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Bonjour,

Je suis entrain de faire une interface pour la gestion des heures de travail sur les différents projets par employer.

La fonction qui me permet de crée les tableaux HTML existe et fonctionne.
Mais je n'arrive pas a crée mes ligne par rapport a se qu'il y a dans la base de données avec le filtre choisit et je n'arrive pas a récupérer la dernière valeur de la colonne ID qui une fois incrémenter de 1 sera mit dans TI_PrimKey.

Voila mon code:
Script:
<script type="text/javascript">
$(function() 
{
   $('#inlineDatepick').datepick
   ({onSelect:
  function(dates)
     {
   // Creation des variables Date
      var dateText = $.datepick.formatDate(dates[0]);
         var dateArr = dateText.split("/");
   var mois=dateArr[1];
   switch(mois) 
   {
   case "Jan":
     var ArrMonth = "01";
   break;
   case "Feb":
     var ArrMonth = "02";
   break;
   case "Mar":
     var ArrMonth = "03";
   break;
   case "Apr":
     var ArrMonth = "04";
   break;
   case "May":
     var ArrMonth = "05";
   break;
   case "Jun":
     var ArrMonth = "06";
   break;
   case "Jul":
     var ArrMonth = "07";
   break;
   case "Aug":
     var ArrMonth = "08";
   break;
   case "Sep":
     var ArrMonth = "09";
   break;
   case "Oct":
     var ArrMonth = "10";
   break;
   case "Nov":
     var ArrMonth = "11";
   break;
   case "Dec":
     var ArrMonth = "12";
   break;
   }
         var IDfromDateText= dateArr[2] +"-"+ ArrMonth  +"-"+ dateArr[0];  
   
   // Creation des variables Worker
   var IDWorker= document.getElementById("TopWorker").value;
   var WorkerArw = IDWorker.split(" ");
   var IDfromWorker = WorkerArw[0] ;
   var NamefromWorker = WorkerArw[1]+" "+ WorkerArw[2];
   
   // Creation de la variable tableau Day/Worker
   var TDW = "#myDiv_TJour_"+IDfromDateText+'_'+IDfromWorker ;
   
   //Test si le tableau Day/Worker exist
   if ($(TDW).length > 0)
   {
    EraseDiv(TDW);
   }
  
    // L'element n'existe pas... je le crée ...
                CreateDiv(IDfromDateText,IDfromWorker,NamefromWorker,dates);

                // ...puis j'affiche le tableau
                ShowDiv(IDfromDateText,IDfromWorker,NamefromWorker);                           
     }
   });
});

function EraseDiv(TDW)
{
 $(TDW).remove()
}

function CreateDiv(idJour,idWorker,nameWorker,dates)
{
 
 var idNumLine = 0;
 
 //Je crée un nouveau div pour le tableau
    $("#Zone_Tab").append("<div name='MesTBL' id='myDiv_" + "TJour_" + idJour + '_' + idWorker + "'></div>");
 //On crée un tableau pour le jour X 
 $("#myDiv_" +"TJour_" + idJour+'_'+ idWorker).append('<table border="2" id="TJour_' + idJour+'_'+ idWorker + '"></table>').css("border","2px inset #000000");
 
 // Line Title
 $("#TJour_" + idJour+'_'+ idWorker).append('<tr align="center" id="Row1_' + idJour+'_'+ idWorker + '"></tr>'); 
 //Title New Line
 $("#Row1_" + idJour+'_'+ idWorker).append('<td bgcolor="#F0FFFF" width="80px">Option Line</td>');
 //On crée un Input pour la date
 $("#Row1_" + idJour+'_'+ idWorker).append('<td bgcolor="#F0FFFF" width="100px">Date</td>');
 //Title Request
 $("#Row1_" + idJour+'_'+ idWorker).append('<td bgcolor="#F0FFFF" width="105px">Request</td>');
 //Title Times (h)
 $("#Row1_" + idJour+'_'+ idWorker).append('<td bgcolor="#F0FFFF" width="55px">Time (h)</td>');
 //Title Description
 $("#Row1_" + idJour+'_'+ idWorker).append('<td bgcolor="#F0FFFF" width="330px">Description</td>');
 //Title Worker
 $("#Row1_" + idJour+'_'+ idWorker).append('<td bgcolor="#F0FFFF" width="175px">Worker</td>');
 //Title Worker
 $("#Row1_" + idJour+'_'+ idWorker).append('<td bgcolor="#F0FFFF" style="display:none"></td>');
 
 //Ajoute une ligne au tableau du jour
 $("#TJour_" + idJour+'_'+ idWorker).append('<tr align="center" class="TRow" id="Row2_' + idJour+'_'+ idWorker+'_'+ idNumLine + '"></tr>'); 
 //On ajoute les options
 $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF"><input type="button" value="New" style="width:100%" class="InsertLine" id="TNewLine_' + idJour+'_'+ idWorker +'_'+ idNumLine + '"></input><br /><input type="button" value="Delete" style="width:100%" class="Delete" onclick="DeleteLine(this.parentNode.parentNode);" id="TDeleteLine_' + idJour+'_'+ idWorker +'_'+ idNumLine + '"></input></td>');
 //On crée un Input pour la date
 $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF"><input type="date" style="width: 100%;" id="TDate_' + idJour+'_'+ idWorker +'_'+ idNumLine + '"></input></td>');
 //On crée un Select pour la tache
 $.ajax
 ({
  type: 'POST',
  data: {id_Jour : idJour+'_', id_Worker : idWorker+'_', id_NumLine : idNumLine},
  async: false,
  url:'TSRequest_Daily_Timer.ajx.php', 
  success:function(data) { $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF">'+data+'</td>');},
  error: function(error){alert("Erreur : " + error);}
 });
 //On crée un Input pour le Temps
 $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF"><input type="text" value="" style="width: 100%;" id="TTime_' + idJour+'_'+ idWorker+'_'+ idNumLine + '"></input></td>');
 //On crée une Zone de texte pour la description
 $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF"><textarea rows="2" cols="25" style="width: 100%;resize: none;" id="TTADescription_' + idJour+'_'+ idWorker +'_'+ idNumLine +'"></textarea></td>');
 //On crée un Input pour l employer
 $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF"><input type="text" style="width: 100%;" id="TIWorker_' + idJour+'_'+ idWorker +'_'+ idNumLine + '"></input></td>');
 //On crée un Input pour la clef primaire
 $("#Row2_" + idJour+'_'+ idWorker +'_'+ idNumLine).append('<td bgcolor="#FFFFFF"><input type="text" style="width: 100%;" value="" readonly="readonly" id="TIPrimKey_' + idJour+'_'+ idWorker +'_'+ idNumLine + '"></input></td>')
 
 // On met le nom de l'employer sélectionner dans l'input TSWorker+idJour+idWorker
 $("#TIWorker_"+idJour+'_'+ idWorker +'_'+ idNumLine).val(nameWorker);
  
 // On met la valeur de la date sélectionner dans l'input TDate+idJour+idWorker
 var dateText = $.datepick.formatDate(dates[0]);
 $("#TDate_"+idJour+'_'+ idWorker +'_'+ idNumLine).val(dateText); 

 //Create line witch the database + filter(Day/Worker) value
 $.ajax
 ({
  type: 'POST',
  data: {id_Jour : idJour+'_', id_Worker : idWorker+'_', id_NumLine : idNumLine},
  async: false,
  url:'Array_Create_Line_Daily_Timer.ajx.php', 
  success:function(data) { $("#Row2_" + idJour+'_'+ idWorker +'_'+ idNumLine).append('<td bgcolor="#FFFFFF">'+data+'</td>');},
  error: function(error){alert("Erreur : " + error);}
 }); 

   // Variable pour le clonage
 var Line ="#Row2_" + idJour+'_'+ idWorker +'_'+"0";
 var N_Line ="Row2_" + idJour+'_'+ idWorker;
 
 var ID_B_TNewLine = "#TNewLine_" + idJour+'_'+ idWorker+'_'+ idNumLine;
 var ID_B_TDeleteLine = "#TDeleteLine_" + idJour+'_'+ idWorker+'_'+ idNumLine;
 var ID_I_Date = "#TDate_" + idJour+'_'+ idWorker+'_'+ idNumLine ;
 var ID_S_Request = "#TSRequest_"+ idJour+'_'+ idWorker+'_'+ idNumLine;
 var ID_I_Time = "#TTime_" + idJour+'_'+ idWorker+'_'+ idNumLine ;
 var ID_TA_Description = "#TTADescription_" + idJour+'_'+ idWorker+'_'+ idNumLine ;
 var ID_I_Worker = "#TIWorker_" + idJour+'_'+ idWorker+'_'+ idNumLine;
 var ID_I_PrimKey = "#TIPrimKey_" + idJour+'_'+ idWorker+'_'+ idNumLine;
 
 var N_B_TNewLine = "TNewLine_" + idJour+'_'+ idWorker;
 var N_B_TDeleteLine = "TDeleteLine_" + idJour+'_'+ idWorker;
 var N_I_Date = "TDate_" + idJour+'_'+ idWorker ;
 var N_S_Request = "TSRequest_"+ idJour+'_'+ idWorker;
 var N_I_Time = "TTime_" + idJour+'_'+ idWorker ;
 var N_TA_Description = "TTADescription_" + idJour+'_'+ idWorker ;
 var N_I_Worker = "TIWorker_" + idJour+'_'+ idWorker;
 var N_I_PrimKey = "TIPrimKey_" + idJour+'_'+ idWorker;
 
 $('.InsertLine').click(function Insert_line()
 { 
  var V_PrimKey =" ";
  //Recover the Primary key value
  $.ajax
  ({
   type: 'POST',
   data: {V_Prim_Key : V_PrimKey},
   async: false,
   url:'Primary_Key_Daily_Timer.ajx.php', 
   success:function(data) {V_PrimKey },
   error: function(error){alert("Erreur : " + error);}
  });
  
  idNumLine++;
  
  // Clone line
  newLine = $(Line).clone(true);
  $(newLine).attr('id', N_Line +'_'+ idNumLine);  
  newLine.insertAfter("#Row1_" + idJour+'_'+ idWorker); 
  
  // Modify object id
  $('.InsertLine').attr("style", "visibility: hidden");
  $(ID_B_TNewLine).attr('id', N_B_TNewLine +'_'+ idNumLine).attr("style", "visibility: visible"); 
  $(ID_B_TDeleteLine).attr('id', N_B_TDeleteLine +'_'+ idNumLine);
  $(ID_I_Date).attr('id', N_I_Date +'_'+ idNumLine);    
  $(ID_S_Request).attr('id', N_S_Request +'_'+ idNumLine);   
  $(ID_I_Time).attr('id', N_I_Time +'_'+ idNumLine).val('');   
  $(ID_TA_Description).attr('id', N_TA_Description +'_'+ idNumLine);    
  $(ID_I_Worker).attr('id', N_I_Worker +'_'+ idNumLine);
  $(ID_I_PrimKey).attr('id', N_I_PrimKey +'_'+ idNumLine).val(V_PrimKey);

 });

}

function DeleteLine(line) 
{
 line.parentNode.removeChild(line);
}

function ShowDiv(idJour,idWorker)
{
    //On masque TOUS les tableaux
  $('div[name="MesTBL"]').hide(); 
 
    // On affiche celui que l'on a selectionné
  $('#myDiv_' + "TJour_" + idJour+'_'+ idWorker).show();   
}

</script>

ajax TSRequest
<?php
 include('connexion.php');
 $idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
 $idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
 $idNumLine = isset($_POST['id_NumLine'])?$_POST['id_NumLine']:'';  // !
  
  if ($idJour)
  {
   $sql = "SELECT caetbl_Sim_requests.RequestID, caetbl_Sim_requests.Sim_Title ,caetbl_Sim_requests.ReportDate
     FROM caetbl_Sim_requests 
     WHERE caetbl_Sim_requests.ReportDate Is Null
     ORDER BY caetbl_Sim_requests.RequestID";

   $result = mysql_query($sql)or die("Requete pas comprise");

   echo "<select style=\"width: 100%;\" id=\"TSRequest_ $idJour$idWorker$idNumLine\"><option value=\"\" onChange=\"saveValue(this)\"></option>" ;
   while ($row=mysql_fetch_assoc($result))
   {
    echo "<option value=\"". $row['RequestID'] ." ". $row['Sim_Title'] ." ". $row['ReportDate'] ."\">"
      . $row['RequestID'] ." ". $row['Sim_Title'] ." ". $row['ReportDate'] ."</option>\n"; 
   }
   echo  "</select> ";
  }
  
 ?> 


ajax Prim_Key
<?php
 include('connexion.php');
 $V_PrimKey = isset($_POST['V_Prim_Key'])?$_POST['V_Prim_Key']:'';  // !

 $sql = "SELECT LAST_INSERT_ID(caetbl_timetracking.ID);
   FROM caetbl_timetracking" 
 $PrimKey = mysql_query($sql)or die("Requete pas comprise");
 //On crée un Input pour la clef primaire
 $V_PrimKey=$PrimKey+1:
 echo $V_PrimKey
 
 ?> 

ajax array_create_line:
<?php
 include('connexion.php');
 $idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
 $idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
 $idNumLine = isset($_POST['id_NumLine'])?$_POST['id_NumLine']:'';  // !
 
 $sql = "SELECT caetbl_timetracking.date caetbl_timetracking.Worker 
   FROM caetbl_timetracking 
   WHERE caetbl_timetracking.date=$idJour & caetbl_timetracking.Worker=$idWorker "
 $Table_Time_Tracking=mysql_query($sql)or die("Requete pas comprise"); // $Table_Time_Tracking est un pointeur vers le tableau contenant le résultat de la requête

 while($Cols_Table=mysql_fetch_array($Table_Time_Tracking)) // $Cols_Table est un nouveau tableau contenant une ligne du tableau
 { //Si la ligne respect les conditions du filtre D/W on crée une nouvelle ligne contenant nos information 
 
  //On incrémente idNumLine a chaque nouvelle ligne du tableau html
  $idNumLine=$idNumLine+1:
  
  //Ajoute une ligne au tableau du jour
  $(\"#TJour_$idJour$idWorker\").append("<tr align=\"center\" class=\"TRow\" id=\"#Row2_$idJour$idWorker$idNumLine\"></tr>"); 
  //On ajoute les options
  $(\"#Row2_$idJour$idWorker$idNumLine\").append("<td bgcolor=\"#FFFFFF\"><input type=\"button\" value=\"New\" style=\"width: 100%;\" class=\"InsertLine\" id=\"TNewLine_$idJour$idWorker\"></input><br /><input type=\"button\" value=\"Delete\" style=\"width: 100%;\" class=\"Delete\" onclick=\"DeleteLine(this.parentNode.parentNode);\" id=\"TDeleteLine_$idJour$idWorker\"></input></td>");
  //On crée un Input pour la date
  $(\"#Row2_$idJour$idWorker$idNumLine\").append("<td bgcolor=\"#FFFFFF\"><input type=\"date\"  value=\"$Cols_Table[3]\" style=\"width: 100%;\" id=\"TDate_$idJour$idWorker\"></input></td>"); // Contains cols Date
  //On crée un Select pour la tache
  if ($idJour)
  {
   $sql2 = "SELECT caetbl_Sim_requests.RequestID, caetbl_Sim_requests.Sim_Title ,caetbl_Sim_requests.ReportDate
     FROM caetbl_Sim_requests 
     WHERE caetbl_Sim_requests.ReportDate Is Null
     ORDER BY caetbl_Sim_requests.RequestID";

   $result = mysql_query($sql2)or die("Requete pas comprise");

   echo $(\"#Row2_$idJour$idWorker$idNumLine\").append("<td bgcolor=\"#FFFFFF\"><select style=\"width: 100%;\" id=\"TSRequest_ $idJour$idWorker\"><option value=\"$Cols_Table[1]\" onChange=\"saveValue(this)\"></option>" ;
   while ($row=mysql_fetch_assoc($result))
   {
    echo "<option value=\"". $row['RequestID'] ." ". $row['Sim_Title'] ." ". $row['ReportDate'] ."\">"
     . $row['RequestID'] ." ". $row['Sim_Title'] ." ". $row['ReportDate'] ."</option>\n"; 
   }
   echo  "</select> </td>");
  }
  //On crée un Input pour le Temps
  $(\"#Row2_$idJour$idWorker$idNumLine\").append("<td bgcolor=\"#FFFFFF\"><input type=\"text\"  value=\"$Cols_Table[4]\" style=\"width: 100%;\" id=\"TTime_$idJour$idWorker\"></input></td>");
  //On crée une Zone de texte pour la description
  $(\"#Row2_$idJour$idWorker$idNumLine\").append("<td bgcolor=\"#FFFFFF\"><textarea rows=\"2\" cols=\"25\" style=\"width: 100%;resize: none;\" id=\"TTADescription_$idJour$idWorker\ value=\"$Cols_Table[2]\"></textarea></td>");
  //On crée un Input pour l employer
  $(\"#Row2_$idJour$idWorker$idNumLine\").append("<td bgcolor=\"#FFFFFF\"><input type=\"text\"  value=\"$Cols_Table[5]\" style=\"width: 100%;\" id=\"TIWorker_$idJour$idWorker\"></input></td>"); 
  //On crée un Input pour la clef primaire
  $(\"#Row2_$idJour$idWorker$idNumLine\").append("<td bgcolor=\"#FFFFFF\"><input type=\"text\"  value=\"$Cols_Table[0]\" style=\"width: 100%;\" id=\"TIPrimKey_$idJour$idWorker\"></input></td>");
  
 }// à chaque boucle, le contenu du tableau $Cols_Table change 
 
 ?>


Merci

Merci et que le café soit avec vous.
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
26486
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
316
1
Merci
$.ajax
  ({
   type: 'POST',
   data: {V_Last_Prim_Key : V_Last_PrimKey},
   async: false,
   url:'Primary_Key_Daily_Timer.ajx.php', 
   success:function(data) {V_Last_PrimKey},
   error: function(error){alert("Erreur : " + error);}
  });


Que cherches tu as obtenir avec la ligne :
success:function(data) {V_Last_PrimKey},

???

Ca ne peut pas marcher comme ça....

essayes :
success:function(data) {
  // Popup pour voir ce que Data contient..
  alert(data);
  V_Last_PrimKey = data;
},




Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 185 internautes nous ont dit merci ce mois-ci

EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Salut,
Maintenant j'ai bien quelque chose dans mon input voila se que me met l'alert:
<br />
<font size='1'><table class='xdebug-error xe-warning' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: Illegal string offset 'maxID' in C:\wamp\www\Projet\CAE\Ressource_tests\[AJAX]_Gestion_de_Tableau\_Perfectionnement_Search_Request_&_Daily_Timer\_Ajout_Phase_Init_+_Switch\Primary_Key_Daily_Timer.ajx.php on line <i>12</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0100</td><td bgcolor='#eeeeec' align='right'>144760</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp\www\Projet\CAE\Ressource_tests\[AJAX]_Gestion_de_Tableau\_Perfectionnement_Search_Request_&_Daily_Timer\_Ajout_Phase_Init_+_Switch\Primary_Key_Daily_Timer.ajx.php' bgcolor='#eeeeec'>..\Primary_Key_Daily_Timer.ajx.php<b>:</b>0</td></tr>
</table></font>
9

Avec la ligne :
success:function(data) {V_Last_PrimKey},

je penser pouvoir retourner la valeur de la dernier ligne .
Mais je me suis redu compte que pour TSRequest on a :
success:function(data) { $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF">'+data+'</td>');},

J'ai donc remplacer la ligne sus mentionner par:
success:function(data) {data},

Mais rien ne se passer.
Merci
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Voila le code de mon fichier ajax Prim_Key:
<?php
	include('connexion.php');
	$V_Last_PrimKey = isset($_POST['V_Last_Prim_Key'])?$_POST['V_Last_Prim_Key']:'';  // !

	$sql = "SELECT max(caetbl_timetracking.ID) as maxID
            FROM caetbl_timetracking" ;

	$resultat= mysql_query($sql)or die("Requete pas comprise");
	//pour manipuler le resultat d'une requête il faut le convertir en Array par exemple :
	$row = mysql_fetch_array($resultat);
	// Lecture de la colonne maxID de la première ligne ( ligne 0) 
	echo $row[0]['maxID'];
	?>	
jordane45
Messages postés
26486
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
316 -
J'ai donc remplacer la ligne sus mentionner par:

success:function(data) {data},


Mais rien ne se passer.

..... data contient le retour de ta page AJAX.... data tout seul.. ne peux pas fonctionner.
Tu dois soit l'assigner à une variable (ce que j'ai fait dans l'exemple précédent)
success:function(data) {
   Mavariable = data;
   },


soit l'utiliser pour le mettre dans tu code html ( ce que tu avais comme code avant) ...
success:function(data) {
  $("#Row2_" + idJour+'_'+ idWorker+'_'+ idNumLine).append('<td bgcolor="#FFFFFF">'+data+'</td>');
   },
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Merci pour cette réponse.
Commenter la réponse de jordane45
Messages postés
26486
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
316
0
Merci
Bonjour,

Déjà..Dans ton fichier ajax Prim_Key je pense que tu as un souci sur l'utilisation de LAST_INSERT_ID.

LAST_INSERT_ID : Retourne le dernier identifiant automatiquement généré par une colonne AUTO_INCREMENT.
https://dev.mysql.com/doc/refman/5.0/fr/information-functions.html

Je pense que tu devrais plutot faire :
 $sql = "SELECT max(caetbl_timetracking.ID) as maxID
             FROM caetbl_timetracking" ;

 $resultat= mysql_query($sql)or die("Requete pas comprise");
//pour manipuler le resultat d'une requête il faut le convertir en Array par exemple :
 $row = mysql_fetch_array($resultat);
// Lecture de la colonne maxID de la première ligne ( ligne 0) 
$PrimKey = $row[0]['maxID'];
 
 



EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
Merci,
Je suis aller voir la doc avant de mettre se code et comme dans ma colonne ID c'est un nombre qui s'incrémente a chaque nouvelle ligne je penser que cela pouvez marcher.

Je vais regarder se que tu ma montrer et voir si j'arrive a l'utiliser.
Merci et bonne appétit.
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
-
J'ai fais quelque test.
Comme je n'arriver pas a le faire fonctionner je suis aller voir pour
SELECT MAX(ID)
j'ai alors modifier légèrement se que tu ma fournit.
Mais sa na pas fonctionner : Firebug ne m'indique pas d'erreur pour ces tentative.
voila se que sa donne :
AJAX Prim_Key:
<?php
	include('connexion.php');
	$V_Last_PrimKey = isset($_POST['V_Last_Prim_Key'])?$_POST['V_Last_Prim_Key']:'';  // !

	$sql = "SELECT MAX(ID) FROM caetbl_timetracking";

	$resultat= mysql_query($sql)or die("Requete pas comprise");
	//pour manipuler le resultat d'une requête il faut le convertir en Array par exemple :
	$row = mysql_fetch_array($resultat);
	// Lecture de la colonne maxID de la première ligne ( ligne 0) 
	$V_Last_PrimKey =  $row[0]['ID'];

	echo $V_Last_PrimKey
	?>	


J'ai fais un test en forçant la value de mon input pourvoir si se n'était pas le readonly qui causer des soucis mais se n'était pas sa le souci
J'en est donc déduit que le problème se trouvait dans le renvoi de la valeur.
  	// Variable pour le clonage
	var Line ="#Row2_" + idJour+'_'+ idWorker +'_'+"0";
	var N_Line ="Row2_" + idJour+'_'+ idWorker;
	
	var ID_B_TNewLine = "#TNewLine_" + idJour+'_'+ idWorker+'_'+ idNumLine;
	var ID_B_TDeleteLine = "#TDeleteLine_" + idJour+'_'+ idWorker+'_'+ idNumLine;
	var ID_I_Date = "#TDate_" + idJour+'_'+ idWorker+'_'+ idNumLine ;
	var ID_S_Request = "#TSRequest_"+ idJour+'_'+ idWorker+'_'+ idNumLine;
	var ID_I_Time = "#TTime_" + idJour+'_'+ idWorker+'_'+ idNumLine ;
	var ID_TA_Description = "#TTADescription_" + idJour+'_'+ idWorker+'_'+ idNumLine ;
	var ID_I_Worker = "#TIWorker_" + idJour+'_'+ idWorker+'_'+ idNumLine;
	var ID_I_PrimKey = "#TIPrimKey_" + idJour+'_'+ idWorker+'_'+ idNumLine;
	
	var N_B_TNewLine = "TNewLine_" + idJour+'_'+ idWorker;
	var N_B_TDeleteLine = "TDeleteLine_" + idJour+'_'+ idWorker;
	var N_I_Date = "TDate_" + idJour+'_'+ idWorker ;
	var N_S_Request = "TSRequest_" + idJour+'_'+ idWorker;
	var N_I_Time = "TTime_" + idJour+'_'+ idWorker ;
	var N_TA_Description = "TTADescription_" + idJour+'_'+ idWorker ;
	var N_I_Worker = "TIWorker_" + idJour+'_'+ idWorker;
	var N_I_PrimKey = "TIPrimKey_" + idJour+'_'+ idWorker;
	
	$('.InsertLine').click(function Insert_line()
	{	
		var V_Last_PrimKey =" ";
		//Recover the Primary key value
		$.ajax
		({
			type: 'POST',
			data: {V_Last_Prim_Key : V_Last_PrimKey},
			async: false,
			url:'Primary_Key_Daily_Timer.ajx.php', 
			success:function(data) {V_Last_PrimKey},
			error: function(error){alert("Erreur : " + error);}
		});
		var id_PrimKey = V_Last_PrimKey;
		idNumLine++;
		
		// Clone line
		newLine = $(Line).clone(true);
		$(newLine).attr('id', N_Line +'_'+ idNumLine);		
		newLine.insertAfter("#Row1_" + idJour+'_'+ idWorker);	
		
		// Modify object id
		$('.InsertLine').attr("style", "visibility: hidden");
		$(ID_B_TNewLine).attr('id', N_B_TNewLine +'_'+ idNumLine).attr("style", "visibility: visible");	
		$(ID_B_TDeleteLine).attr('id', N_B_TDeleteLine +'_'+ idNumLine);
		$(ID_I_Date).attr('id', N_I_Date +'_'+ idNumLine);				
		$(ID_S_Request).attr('id', N_S_Request +'_'+ idNumLine);			
		$(ID_I_Time).attr('id', N_I_Time +'_'+ idNumLine).val('');			
		$(ID_TA_Description).attr('id', N_TA_Description +'_'+ idNumLine);				
		$(ID_I_Worker).attr('id', N_I_Worker +'_'+ idNumLine);
		$(ID_I_PrimKey).attr('id', N_I_PrimKey +'_'+ idNumLine).val(id_PrimKey);

	});
Commenter la réponse de jordane45
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Statut
Membre
Dernière intervention
15 juillet 2015
0
Merci
Le problème de la clef primaire (récupération de la dernier ligne de la colonne ID) et résolue :
Voila le code de mon fichier ajax:
<?php
	include('connexion.php');
	$V_Last_PrimKey = isset($_POST['V_Last_Prim_Key'])?$_POST['V_Last_Prim_Key']:'';  // !

	$sql = "SELECT max(caetbl_timetracking.ID) as maxID
            FROM caetbl_timetracking" ;
	$resultat = mysql_query($sql)or die("Requete pas comprise");
	
	//pour manipuler le resultat d'une requête il faut le convertir en Array par exemple :
	$row = mysql_fetch_array($resultat);
	
	// Lecture de la colonne maxID de la première ligne ( ligne 0) 
	echo $row[0];
	?>

Commenter la réponse de EnguerrandP
Messages postés
26486
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
316
0
Merci
Le problème de la clef primaire (récupération de la dernier ligne de la colonne ID) et résolue :

DOnc ....

Commenter la réponse de jordane45