[JQuery+AJAX] Insertion de ligne de la BDD dans un Tableau HTML [Résolu]

Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
Bonjour,
Je cherche a crée une fonction dans ma fonction createDiv qui me permettrait d'insérer dans mon tableau des lignes avec les valeur de celle de la BDD qui correspond au filtre D/W.

Mon 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" onmouseout=function Save_Line() 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);" 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
....


Mon fichier AJAX:
<?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.ID caetbl_timetracking.SimRequest caetbl_timetracking.Description caetbl_timetracking.date caetbl_timetracking.time spent 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 

Votre réponse

8 réponses

Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
0
Merci
Bonjour,

Mon fichier AJAX:
Attention... c'est un fichier PHP appellé via une méthode que l'on nomme AJAX ... ce n'est pas un fichier "ajax"...

En tout cas... ta page PHP ne peux pas fonctionner comme tu l'as faite....
Tu ne peux pas appeller des commandes JAVASCRIPT directement dans du PHP ( si tu ne les mets pas dans des balises <script type="text/javascript"> </script>


Pense aussi qu'il vaut mieux éviter de mettre trop de HTML dans de l'AJAX.
Dans l'idéal... avec AJAX ... tu récupères des données sous forme de tableau ( je parle d'ARRAY ..pas des tables html...) Puis tu les manipules dans ta fonction SUCCESS.

N'oublies pas non plus que Javascript travaille côté POSTE client (c.a.d sur l'ordinateur qui affiche la page) alors que le PHP est traité côté serveur.... (=> Gain de rapidité et sécurisation des données.).

Enfin bon..
Autant.... l'ajout de nouvelles lignes dynamiquement dans ta page se fait via javascript (ce que tu fais déjà)... autant l'affichage de lignes déjà existantes dans ta BDD (si tu les veux au chargement de ta page) tu peux le faire directement en PHP... (plus simple).



Ah..et sinon :
Ta première requête est fausse ..

 $sql = "SELECT caetbl_timetracking.ID
 caetbl_timetracking.SimRequest 
caetbl_timetracking.Description 
caetbl_timetracking.date 
caetbl_timetracking.time spent 
caetbl_timetracking.Worker 
   FROM caetbl_timetracking 
   WHERE caetbl_timetracking.date=$idJour 
 & caetbl_timetracking.Worker=$idWorker "


- Il te manque des virgules pour séparer la liste des champs que tu veux "select".
- où as-tu vu .. que pour dire AND tu pouvais utiliser le symbole & ?
- Il manque également un ";" à la fin de ta ligne.

En gros.. tu devrais plutot avoir :
 $sql = "SELECT C.ID
     ,C.SimRequest 
     ,C.Description 
     ,C.date 
     ,C.time spent 
     ,C.Worker 
   FROM caetbl_timetracking C
   WHERE C.date='$idJour' 
     AND   C.Worker='$idWorker' ";


Pas sur non plus que Mysql aprécie les noms de champs avec des espaces.. (time spent ).
A mon avis tu devrais le renomer en "time_spent"

Que d'erreurs....


C'est typiquement le genre de chose que tu aurais pu voir par toi même si tu avais testé ta requête directement dans ta BDD comme je te le conseille à chacune de tes questions ........













Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
J'ai appliquer les correction aux erreur que tu a souligner.
Pour la création des ligne je ne peut pas le faire lors de l'init de la page car le filtre D/W n'est pas encor choisit, et que celui-ci peut être changer.
Merci
Commenter la réponse de jordane45
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
0
Merci
Pour la création des ligne je ne peut pas le faire lors de l'init de la page car le filtre D/W n'est pas encor choisit, et que celui-ci peut être changer.

Dans ce cas reste en Ajax.
Supprimes toutes tes instructions javascript de ton fichier php et ne conserve que le code html.
du genre :
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;
  $idNumLine++;

  //Ajoute une ligne au tableau du jour
  echo "<tr align=\"center\" class=\"TRow\" id=\"Row2_$idJour$idWorker$idNumLine\"></tr>"; 

// .....









jordane45
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
-
Ben je t'ai répondu...
Tu conserves ton script javascript qui fait appel à ta page PHP.
Tu modifies ta page PHP en tenant compte des mes précédentes remarques..
Et voilou.. le tour est joué.
Commenter la réponse de jordane45
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
0
Merci
Bonjour,
voila se que j'ai fais dans le fichier php:
<?php
	include('connexion.php');*
	$JourSel = isset($_POST['Jour_Sel'])?$_POST['Jour_Sel']:'';  // !
	$WorkerSel = isset($_POST['Worker_Sel'])?$_POST['Worker_Sel']:'';  // !
	$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.ID,
					caetbl_timetracking.SimRequest,
					caetbl_timetracking.Description,
					caetbl_timetracking.date,
					caetbl_timetracking.time_spent,
					caetbl_timetracking.Worker 
			FROM caetbl_timetracking 
			WHERE caetbl_timetracking.date=$JourSel 
			AND caetbl_timetracking.Worker=$WorkerSel ";
	$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;
		$idNumLine++;

		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>");
		}
		//Ajoute une ligne au tableau du jour
		echo "<tr align=\"center\" class=\"TRow\" id=\"Row2_$idJour$idWorker$idNumLine\">
				<td bgcolor=\"#FFFFFF"\ ">
					<input type=\"button\" value=\"\" style=\"width: 100%;\" class=\"InsertLine\" id=\"TNewLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
					<br />
					<input type=\"button\" value=\"\" style=\"width: 100%;\" class=\"Delete\" onclick=\"DeleteLine(this.parentNode.parentNode);\" id=\"TDeleteLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF"\ ">
					<input type=\"text\" value=\"$Cols_Table[3]\" style=\"width: 100%;\" id=\"TIDate_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF"\ ">
					<select></select>
				</td>
				<td bgcolor=\"#FFFFFF"\ ">
					<input type=\"text\" value=\"$Cols_Table[4]\" style=\"width: 100%;\" id=\"TITime_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF"\ ">
					<textarea type=\"text\" value=\"$Cols_Table[2]\" rows=\"2\" cols=\"25\" style=\"width: 100%;resize: none;\" id=\"TTADescription_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></textarea>
				</td>
				<td bgcolor=\"#FFFFFF"\ ">
					<input type=\"text\" value=\"$Cols_Table[5]\" style=\"width: 100%;\" id=\"TIWorker_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF"\ ">
					<input type=\"text\" value=\"$Cols_Table[0]\" style=\"width: 100%;\" readonly=\"readonly\" id=\"TIPrimKey_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
			 </tr>"; 

	}// à chaque boucle, le contenu du tableau $Cols_Table change	
	
	?>


et la fonction ajax qui l'appel :
	//Create line witch the database + filter(Day/Worker) value
	var JourSel = idJour ;
	var WorkerSel = idWorker ;
	$.ajax
	({
		type: 'POST',
		data: 
		{
			Jour_Sel : JourSel,
			Worker_Sel : WorkerSel,
			id_Jour : idJour+'_',
			id_Worker : idWorker+'_',
			id_NumLine : idNumLine
		},
		async: false,
		url:'Array_Create_Line_Daily_Timer.ajx.php', 
		success:function(data) { data.insertAfter("#Row1_" + idJour+'_'+ idWorker);},
		error: function(error){alert("Erreur : " + error);}
	});	


lorsque je fais un test j'ai un message d'erreur sur firebug:
TypeError: data.insertAfter is not a function


success:function(data) { data.insertAfter("#Row1_" + idJour+'_'+ idWorker);},

Je n'ait pas encor trouver comment récupérer mon tableau(si il existe) je continue de chercher.
Merci
jordane45
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
-
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
donc si j'ai une variable qui prend la valeur de data et que je fais un mavariable.insertafeter sa pourrait marcher, je testerait sa demain sur mon ordo la j'ai pas la BDD.
Merci
Commenter la réponse de EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
0
Merci
Bonjour,
En corrigeant de cette façon ma fonction ajax Firebug ne me met plus de message d'erreur:
 //Create line witch the database + filter(Day/Worker) value
 var JourSel = idJour ;
 var WorkerSel = idWorker ;
 $.ajax
 ({
  type: 'POST',
  data: 
  {
   Jour_Sel : JourSel,
   Worker_Sel : WorkerSel,
   id_Jour : idJour+'_',
   id_Worker : idWorker+'_',
   id_NumLine : idNumLine
  },
  async: false,
  url:'Array_Create_Line_Daily_Timer.ajx.php', 
  success:function(data) {$("#TJour_" + idJour+'_'+ idWorker).append(data);},
  error: function(error){alert("Erreur : " + error);}
 })

Et en corrigeant quelque erreur dans le fichier php (pour la création de nouvelle ligne avec le contenu de la BDD correspondant au filtre choisit) je n'ai plus de message d'erreur qui apparait dans ma ligne ou sous ma ligne :
<?php
 include('connexion.php');
 $JourSel = isset($_POST['Jour_Sel'])?$_POST['Jour_Sel']:'';  // !
 $WorkerSel = isset($_POST['Worker_Sel'])?$_POST['Worker_Sel']:'';  // !
 $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.ID,
     caetbl_timetracking.SimRequest,
     caetbl_timetracking.Description,
     caetbl_timetracking.date,
     caetbl_timetracking.time_spent,
     caetbl_timetracking.Worker 
   FROM caetbl_timetracking 
   WHERE caetbl_timetracking.date=$JourSel 
   AND caetbl_timetracking.Worker=$WorkerSel ";
 $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;
  $idNumLine++;

  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 "<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>";
  }
  //Ajoute une ligne au tableau du jour
  echo "<tr align=\"center\" class=\"TRow\" id=\"Row2_$idJour$idWorker$idNumLine\">
    <td bgcolor=\"#FFFFFF\">
     <input type=\"button\" value=\"\" style=\"width: 100%\" class=\"InsertLine\" id=\"TNewLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
     <br />
     <input type=\"button\" value=\"\" style=\"width: 100%\" class=\"Delete\" onclick=\"DeleteLine(this.parentNode.parentNode);\" id=\"TDeleteLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
    </td>
    <td bgcolor=\"#FFFFFF\">
     <input type=\"text\" value=\"$Cols_Table[3]\" style=\"width: 100%\" id=\"TIDate_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
    </td>
    <td bgcolor=\"#FFFFFF\">
     <select></select>
    </td>
    <td bgcolor=\"#FFFFFF\">
     <input type=\"text\" value=\"$Cols_Table[4]\" style=\"width: 100%\" id=\"TITime_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
    </td>
    <td bgcolor=\"#FFFFFF\">
     <textarea type=\"text\" value=\"$Cols_Table[2]\" rows=\"2\" cols=\"25\" style=\"width: 100%;resize: none;\" id=\"TTADescription_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></textarea>
    </td>
    <td bgcolor=\"#FFFFFF\">
     <input type=\"text\" value=\"$Cols_Table[5]\" style=\"width: 100%\" id=\"TIWorker_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
    </td>
    <td bgcolor=\"#FFFFFF\">
     <input type=\"text\" value=\"$Cols_Table[0]\" style=\"width: 100%\" readonly=\"readonly\" id=\"TIPrimKey_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
    </td>
    </tr>"; 

 }// à chaque boucle, le contenu du tableau $Cols_Table change 
 
 ?>


De-plus je croit non je suis sur qu'il faut faire une modification pour le select car c'est contraint sont:
-Qu'il soit dans la ligne du tableau
-Qu'il est par défaut la valeur contenu dans la ligne de la BDD,
-Que comme mes select crée par javascript est les valeur de la base de données.

Merci
Commenter la réponse de EnguerrandP
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
0
Merci
Bonjour,

De-plus je croit non je suis sur qu'il faut faire une modification pour le select car c'est contraint sont:
-Qu'il soit dans la ligne du tableau
-Qu'il est par défaut la valeur contenu dans la ligne de la BDD,
-Que comme mes select crée par javascript est les valeur de la base de données.

C'est une question ?
Si c'est le cas... je ne la comprend pas..(désolé).

Peux-tu essayer de la reformuler ?



Commenter la réponse de jordane45
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
0
Merci
Dans mon fichier php j'ai sa:
		//On ajoute le select avec les valeur de la BDD
		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 "<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>";
		}

qui me crée un select avec les valeur de la BDD
Et j'ai sa (qui théoriquement doit me crée une ligne avec les valeur de la BDD):
		//Ajoute une ligne au tableau du jour
		echo "<tr align=\"center\" class=\"TRow\" id=\"Row2_$idJour$idWorker$idNumLine\">
				<td bgcolor=\"#FFFFFF\">
					<input type=\"button\" value=\"\" style=\"width: 100%\" class=\"InsertLine\" id=\"TNewLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
					<br />
					<input type=\"button\" value=\"\" style=\"width: 100%\" class=\"Delete\" onclick=\"DeleteLine(this.parentNode.parentNode);\" id=\"TDeleteLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[3]\" style=\"width: 100%\" id=\"TIDate_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<select></select>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[4]\" style=\"width: 100%\" id=\"TITime_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<textarea type=\"text\" value=\"$Cols_Table[2]\" rows=\"2\" cols=\"25\" style=\"width: 100%;resize: none;\" id=\"TTADescription_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></textarea>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[5]\" style=\"width: 100%\" id=\"TIWorker_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[0]\" style=\"width: 100%\" readonly=\"readonly\" id=\"TIPrimKey_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
			 </tr>";

Je ne sait pas comment faire pour que mon select soit dans ma ligne avec comme valeur par défaut se qui y a dans la ligne de la BDD qui correspond à la ligne et au filtre D/W.
Merci
jordane45
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
-
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
Je ne pense pas,
je croit que le code :
echo "<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>";

fais déjà la valeur par défaut qui correspond a la valeur de la ligne dans la table timetracking avec :
<select style=\"width: 100%;\" id=\"TSRequest_ $idJour$idWorker\"><option value=\"$Cols_Table[1]\" onChange=\"saveValue(this)\"></option>" ;

et l'incrémentation du select avec les request de la table sim_request avec:
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"; 
			}

Le problème c'est que je ne voit pas comment l'introduire dans la ligne pour que lorsque je renvois la ligne au tableau HTML le select soit dans cette ligne.

Merci
Commenter la réponse de EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
0
Merci
Bonjour,
avec mon fichier Array_Create_Line je n'ai pas de réponse.
Je suis donc aller voir dans Firebug j'envoie bien les information au fichier, mais rein n'ai renvoyer pourtant, j'ai bien mit :
		//Ajoute une ligne au tableau du jour
		echo "<tr align=\"center\" class=\"TRow\" id=\"Row2_$idJour$idWorker$idNumLine\">
				<td bgcolor=\"#FFFFFF\">
					<input type=\"button\" value=\"\" style=\"width: 100%\" class=\"InsertLine\" id=\"TNewLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
					<br />
					<input type=\"button\" value=\"\" style=\"width: 100%\" class=\"Delete\" onclick=\"DeleteLine(this.parentNode.parentNode);\" id=\"TDeleteLine_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[3]\" style=\"width: 100%\" id=\"TIDate_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<select></select>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[4]\" style=\"width: 100%\" id=\"TITime_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<textarea type=\"text\" value=\"$Cols_Table[2]\" rows=\"2\" cols=\"25\" style=\"width: 100%;resize: none;\" id=\"TTADescription_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></textarea>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[5]\" style=\"width: 100%\" id=\"TIWorker_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
				<td bgcolor=\"#FFFFFF\">
					<input type=\"text\" value=\"$Cols_Table[0]\" style=\"width: 100%\" readonly=\"readonly\" id=\"TIPrimKey_' + idJour+'_'+ idWorker+'_'+ idNumLine + '\"></input>
				</td>
			 </tr>"; 

dans le fichier php et :
success:function(data) {$("#TJour_" + idJour+'_'+ idWorker).append(data);},

dans le fichier principal.

Je me demande si le problème ne vient pas du faite que j'ai sa dans mon fichier php:
			echo "<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>";

au dessus de l'echo qui me renvoit mon tableau.
Mais même avec sa il devrait au moins me renvoyer un select mais la rien du tout.
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
Bon j'ai testé en enlevant le echo select mais sa na rien changer. je ne comprend pas pourquoi il n'y a pas de réponse.
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
Bonjour, je ne comprend vraiment pas pourquoi il n'y a pas de réponse car même avec une fonction fausse au niveau de mais variable j'ai l'onglet réponse dans firebug.
Commenter la réponse de EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
0
Merci
Bonjour, j'ai tester en remplacent POST par Get dans ma fonction ajax maintenant j'ai bien l'onglet réponse dans console all .
Mais apparemment ma fonction et fausse car j'ai comme réponse :"requete pas comprise"

Merci et que le café soit avec vous.
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
Bonjour j'ai compris pourquoi j'avais une réponse après avoir mit GET a la place de POST c'est parce que dans le fichier php je n'ai pas remplacer les$_POST en $_GET maintenant j'ai a nouveaux plus aucune réponse.
Merci
EnguerrandP
Messages postés
295
Date d'inscription
vendredi 26 avril 2013
Dernière intervention
15 juillet 2015
-
Bonjour,
J'ai trouver un exemple pour le tableau HTML
Merci de m'avoir aider.
(Voici l'exemple pour ceux que cela intéresse :
    <html>
    <title>Annuaire</title>
    <body>
    <?php
	include('connexion.php');
     
    // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
    //récupère tous les enregistrements
    $select = 'SELECT * FROM 'caetbl_people' ';
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
    // debut du tableau
    echo '<table bgcolor="#FFFFFF">'."\n";
    // première ligne on affiche les titres prénom et surnom dans 2 colonnes
    echo '<tr>';
    echo '<td bgcolor="#669999"><b><u>PeopleID</u></b></td>';
    echo '<td bgcolor="#669999"><b><u>FirstName</u></b></td>';
    echo '<td bgcolor="#669999"><b><u>LastName</u></b></td>';
    echo '<td bgcolor="#669999"><b><u>Group</u></b></td>';
    echo '<td bgcolor="#669999"><b><u>phone</u></b></td>' ;
	echo '<td bgcolor="#669999"><b><u>DirectReport</u></b></td>' ;
    echo '</tr>'."\n";
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
    while($row = mysql_fetch_array($result)) {
    echo '<tr>';
    echo '<td bgcolor="#CCCCCC">'.$row["PeopleID"].'</td>';
    echo '<td bgcolor="#CCCCCC">'.$row["FirstName"].'</td>';
    echo '<td bgcolor="#CCCCCC">'.$row["LastName"].'</td>';
    echo '<td bgcolor="#CCCCCC">'.$row["Group"].'</td>';
    echo '<td bgcolor="#CCCCCC">'.$row["phone"].'</td>';
	echo '<td bgcolor="#CCCCCC">'.$row["DirectReport"].'</td>';
    echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
    </body>
    </html>
)
Commenter la réponse de EnguerrandP

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.