[JQuery+AJAX] Gestion de la sauvegarde des lignes d'un tableau

EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 - 29 avril 2014 à 14:02
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 - 5 mai 2014 à 12:49
Bonjour,
J'essaye de crée un système pour sauvegarder une ligne de mon tableau dans la
BDD (Insert into et Update).
Je croit que le problème vient du script et non de mes fichier ajax.
Car le fichier Insert_line_daily_timer.ajax.php fonctionne, lorsque je le test.

Mais la j'ai seulement la création des ligne dans le tableau html il ne se passe rien du coter de la BDD.

Script
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
	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;
	
	var VI_Description = $(ID_TA_Description).val();
	var VS_Request = $(ID_S_Request).val();
	var VI_TimeSpent = $(ID_I_Time).val();
	var VI_PrimKey = $(ID_I_PrimKey).val();
	var id_PrimKey =" ";	
		
	$('.InsertLine').click(function Insert_line()
	{	
		Save_Line();
		
		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: visible");
		$('.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('');				
	});

	function Save_Line()
	{
		if($(VI_TimeSpent) != ' ')
		{
			if($(VI_PrimKey) != ' ')
			{		
				$.ajax
				({
					type: 'POST',
					data: 
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Update_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {},
					error: function(error){alert("Erreur : " + error);}
				});
			}
			else
			{
				//Insert la ligne actuelle dans la base de données
				$.ajax
				({
					type: 'POST',
					data:
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {id_PrimKey = data;},
					error: function(error){alert("Erreur : " + error);}
				});
				$(ID_I_PrimKey).val(id_PrimKey);
			}
		}
	}

	function DeleteLine(line) 
	{
		var Del_PrimKey = $(ID_I_PrimKey).val()
	
		$.ajax
		({
			type: 'POST',
			data: 
				{
					Delete_PrimKey : Del_PrimKey, 
				},
			async: false,
			url:'Delete_Line_BDD_Daily_Timer.ajx.php', 
			success:function(data) {},
			error: function(error){alert("Erreur : " + error);}
		});		
		line.parentNode.removeChild(line);
	}
}


Ajax insert :
<?php
	include('connexion.php');
	$idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
	$idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
	$VI_Description = isset($_POST['V_I_Description'])?$_POST['V_I_Description']:'';  // !
	$VS_Request = isset($_POST['V_S_Request'])?$_POST['V_S_Request']:'';  // !
	$VI_TimeSpent = isset($_POST['V_I_TimeSpent'])?$_POST['V_I_TimeSpent']:'';  // !
	
	$sql = "INSERT INTO caetbl_timetracking (
												'SimRequest',
												'Description',
												'date',
												'time spent',
												'Worker'
											) 
			VALUES (
						'$VS_Request',
						'$VI_Description',
						'$idJour',
						'$VI_TimeSpent',
						'$idWorker'
					)";
	
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	
	$sql2 = "SELECT max(caetbl_timetracking.ID) as maxID
            FROM caetbl_timetracking" ;
	$resultat = mysql_query($sql2)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];
	?>	


Ajax Update
<?php
	include('connexion.php');
	$idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
	$idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
	$VI_Description = isset($_POST['V_I_Description'])?$_POST['V_I_Description']:'';  // !
	$VS_Request = isset($_POST['V_S_Request'])?$_POST['V_S_Request']:'';  // !
	$VI_TimeSpent = isset($_POST['V_I_TimeSpent'])?$_POST['V_I_TimeSpent']:'';  // !
	
	$sql = "UPDATE caetbl_timetracking 
			SET (
					'SimRequest' = '$VS_Request',
					'Description'='$VI_Description',
					'date'='$idJour',
					'time spent'='$VI_TimeSpent',
					'Worker'='$idWorker'
				)";
	
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	?>	


Ajax delete
<?php
	include('connexion.php');
	$Del_PrimKey = isset($_POST['Delete_PrimKey'])?$_POST['Delete_PrimKey']:'';  // !
	
	$sql = "DELETE FROM 'caetbl_timetracking' WHERE 'caetbl_timetracking'.'ID' = $Del_PrimKey";
	
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	?>	

Merci

8 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
29 avril 2014 à 14:10
Avec FireBug, tu peux visualiser ce qui se passe lors de l'appel à ta page AJAX et regarder ce qu'elle te retourne comme info.

Tu vas dans l'onglet CONSOLE
Tu cliques sur le (-) qui se trouve devant la ligne de ton fichier AJAX

Puis tu regardes ce qu'il y a dans les différents onglets...


NB: Il faut bien sur que tu es activé le debogueur de Script...


0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
29 avril 2014 à 14:27
Ok, je regarde sa.
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 10:10
Lorsque je regarde dans console all j'ai sa :
POST http://localhost/Projet/CAE/Ressource_tests/%5bA...hase_Init_+_Switch/TSRequest_Daily_Timer.ajx.php

200 OK
50ms
jquery-1.11.0.js (ligne 9666)
SyntaxError: function statement requires a name


function


jquery-1.11.0.js (ligne 7759, col. 8)
POST http://localhost/Projet/CAE/Ressource_tests/%5bA...nit_+_Switch/Update_Line_BDD_Daily_Timer.ajx.php

200 OK
32ms
jquery-1.11.0.js (ligne 9666)
En-têtesPostRéponseHTML

Erreur SQL !UPDATE caetbl_timetracking
SET (
SimRequest = '',
Description='',
date='2014-04-30',
time_spent='',
Worker='3'
)
WHERE '' !='' AND
'' !='' <br />You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
SimRequest = '',
Description='',
date='2014-04-30',
ti' at line 2

Avec :
Pour la fonction ajax :
	// 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;
	
	var VI_Description = $(ID_TA_Description).val();
	var VS_Request = $(ID_S_Request).val();
	var VI_TimeSpent = $(ID_I_Time).val();
	var VI_PrimKey = $(ID_I_PrimKey).val();
	var id_PrimKey =" ";	
		
	$('.InsertLine').click(function Insert_line()
	{	
		if($(VI_TimeSpent) != ' ')
		{
			if($(VI_PrimKey) != ' ')
			{		
				$.ajax
				({
					type: 'POST',
					data: 
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Update_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {},
					error: function(error){alert("Erreur : " + error);}
				});
			}
			else
			{
				//Insert la ligne actuelle dans la base de données
				$.ajax
				({
					type: 'POST',
					data:
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {id_PrimKey = data;},
					error: function(error){alert("Erreur : " + error);}
				});
				$(ID_I_PrimKey).val(id_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: visible");
		$('.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('');				
	});


Et pour les fichier PHP:
Insert:
<?php
	include('connexion.php');
	$idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
	$idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
	$VI_Description = isset($_POST['V_I_Description'])?$_POST['V_I_Description']:'';  // !
	$VS_Request = isset($_POST['V_S_Request'])?$_POST['V_S_Request']:'';  // !
	$VI_TimeSpent = isset($_POST['V_I_TimeSpent'])?$_POST['V_I_TimeSpent']:'';  // !
	
	$sql = "INSERT INTO caetbl_timetracking (
												'SimRequest',
												'Description',
												'date',
												'time_spent',
												'Worker'
											) 
			VALUES (
						'$VS_Request',
						'$VI_Description',
						'$idJour',
						'$VI_TimeSpent',
						'$idWorker'
					)";
	
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	
	$sql2 = "SELECT max(caetbl_timetracking.ID) as maxID
            FROM caetbl_timetracking" ;
	$resultat = mysql_query($sql2)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];
	?>	


update:
<?php
	include('connexion.php');
	$idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
	$idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
	$VI_Description = isset($_POST['V_I_Description'])?$_POST['V_I_Description']:'';  // !
	$VS_Request = isset($_POST['V_S_Request'])?$_POST['V_S_Request']:'';  // !
	$VI_TimeSpent = isset($_POST['V_I_TimeSpent'])?$_POST['V_I_TimeSpent']:'';  // !
	
	$sql = "UPDATE caetbl_timetracking 
			SET (
					SimRequest = '$VS_Request',
					Description='$VI_Description',
					date='$idJour',
					time_spent='$VI_TimeSpent',
					Worker='$idWorker'
				)
			WHERE '$VS_Request' !='' AND
				  '$VI_TimeSpent' !='' ";
	
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	?>	


D'après se que j'ai compris il y a un problème avec mes variable qui envoie les valeur du request, time spent.
car Firebug me les indique comme inéxistante.

Merci
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 10:20
Heu... avant cela... tu as déjà un souci avec ta requête d'UPDATE...

Erreur SQL !UPDATE caetbl_timetracking
SET (
SimRequest = '',
Description='',
date='2014-04-30',
time_spent='',
Worker='3'
)
WHERE '' !='' AND
'' !='' <br />You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
SimRequest = '',
Description='',
date='2014-04-30',
ti' at line 2


Dans ta clause WHERE tu dois avoir des NOM_de_CHAMP ... pas des variables..
WHERE '$VS_Request' !='' 
AND     '$VI_TimeSpent' !='' ";

Ne peut pas marcher...

0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 10:28
J'ai enlever le WHERE, mais j'ai toujours la problème:
Erreur SQL !UPDATE caetbl_timetracking
SET (
SimRequest = '',
Description='',
date='2014-04-09',
time_spent='',
Worker='3'
)<br />You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
SimRequest = '',
Description='',
date='2014-04-09',
ti' at line 2
Pourtant se que je trouve avec mon moteur de recherche préférer me donne la même écriture.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 30/04/2014 à 10:38
pas de parenthèses..

http://dev.mysql.com/doc/refman/5.0/fr/update.html

UPDATE caetbl_timetracking 
   SET SimRequest = ''
         ,Description=''
         ,date='2014-04-09'
         ,time_spent=''
         ,Worker='3'

0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 10:37
Merci sa a bien enlever le message d'erreur.
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 10:48
Je ne sait pas pourquoi ni comment mes j'ai eu un update sur 9000 ligne de la ligne sélectionner se qui a effacer toute les donner de la table(par chance j'en est une copie intacte).
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 11:01
Je croit que c'est parce que je n'est pas mi de WHERE
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 11:07
Et que m'est test conditionnel sont faux car il ne devrait pas faire l'update si time_senpt est vide.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 11:12
j'ai eu un update sur 9000 ligneS
Je croit que c'est parce que je n'est pas miS de WHERE
Ben Oui... en effet... Si tu ne mets pas de WHERE..il fait l'UPDATE sur toutes tes lignes de ta BDD..

Dans ton Where... tu dois utiliser des NOMS de champ et non des Variables.
Ce qui doit donner quelque chose du genre :
WHERE SimRequest !='' 
    AND  time_spent !=''
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 11:16
Voila j'ai rajouter un Where fais un test est la sa na pas fais d'update mais ma table time tracking est passer de 8500 ligne a 17000.
Voila mon script :
	// 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;
	
	var VI_Description = $(ID_TA_Description).val();
	var VS_Request = $(ID_S_Request).val();
	var VI_TimeSpent = $(ID_I_Time).val();
	var VI_PrimKey = $(ID_I_PrimKey).val();
	var id_PrimKey =" ";	
		
	$('.InsertLine').click(function Insert_line()
	{	
		if($(VI_TimeSpent) != ' ')
		{
			if($(VI_PrimKey) != ' ')
			{	
				var idU_PrimKey = VI_PrimKey;
				$.ajax
				({
					type: 'POST',
					data: 
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent,
							id_U_PrimKey :idU_PrimKey
						},
					async: false,
					url:'Update_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {},
					error: function(error){alert("Erreur : " + error);}
				});
			}
			else
			{
				//Insert la ligne actuelle dans la base de données
				$.ajax
				({
					type: 'POST',
					data:
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {id_PrimKey = data;},
					error: function(error){alert("Erreur : " + error);}
				});
				$(ID_I_PrimKey).val(id_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: visible");
		$('.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('');				
	});

	function Save_Line()
	{
		if($(VI_TimeSpent) != ' ')
		{
			if($(VI_PrimKey) != ' ')
			{		
				$.ajax
				({
					type: 'POST',
					data: 
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Update_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {},
					error: function(error){alert("Erreur : " + error);}
				});
			}
			else
			{
				//Insert la ligne actuelle dans la base de données
				$.ajax
				({
					type: 'POST',
					data:
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {id_PrimKey = data;},
					error: function(error){alert("Erreur : " + error);}
				});
				$(ID_I_PrimKey).val(id_PrimKey);
			}
		}
	}


Et mon fichier update :
<?php
	include('connexion.php');
	$idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
	$idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
	$VI_Description = isset($_POST['V_I_Description'])?$_POST['V_I_Description']:'';  // !
	$VS_Request = isset($_POST['V_S_Request'])?$_POST['V_S_Request']:'';  // !
	$VI_TimeSpent = isset($_POST['V_I_TimeSpent'])?$_POST['V_I_TimeSpent']:'';  // !
	$idU_PrimKey = isset($_POST['id_U_PrimKey'])?$_POST['id_U_PrimKey']:'';  // !
	$sql = "UPDATE caetbl_timetracking 
			SET 	SimRequest = '$VS_Request',
					Description='$VI_Description',
					date='$idJour',
					time_spent='$VI_TimeSpent',
					Worker='$idWorker'
			WHERE	caetbl_timetracking.ID='$idU_PrimKey'";
	
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	?>	


Merci
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 11:36
$sql = "UPDATE caetbl_timetracking 
			SET 	SimRequest = '$VS_Request',
					Description='$VI_Description',
					date='$idJour',
					time_spent='$VI_TimeSpent',
					Worker='$idWorker'
			WHERE	caetbl_timetracking.ID='$idU_PrimKey'";
	


//-----------------------------------------------------------------------------------------// FAIS UN ECHO DE TA REQUETE :
//-----------------------------------------------------------------------------------------
echo "<br><b> REQUETE = </b><br>".$sql."<br>";


mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());	
	


Une fois le Echo de ta requête fait.... TESTE LA EN DIRECT dans ta BDD !


sa na pas fais d'update mais ma table time tracking est passer de 8500 ligne a 17000.
Ben... il semble que dans ce cas ça ait réalisé des INSERT et non des UPDATE ..
C'est donc que tes conditions ne sont pas bonnes...
if($(VI_TimeSpent) != ' ')
if($(VI_PrimKey) != ' ')

Que valent tes variables ?
Tu peux en faire des "ALERT" pour le savoir...
alert(($(VI_TimeSpent));
alert(($(VI_PrimKey));



Il faut vraiment que tu commences par faire ton DEBUG par toi même....

=> Utiliser des ALERT, CONSOLE.LOG sous javascript
des ECHO, PRINT_R ou VAR_DUMP sous PHP ..
=> Utiliser FIREBUG pour voir des éventuels messages d'erreur, Savoir ce que ton AJAX reçois/retourne comme valeurs ...
=> Examiner le code HTML généré pour voir si tes éléments HTML ont bien les bons ID..NAME..VALUE...STYLE ..etc...
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
Modifié par EnguerrandP le 30/04/2014 à 14:40
Bonjour,
J'ai trouver pourquoi mes tests conditionnelle ne marcher pas :
car il fallait mettre :
  if(VI_PrimKey = " ")
  {

   if((VI_TimeSpent != "")&&(VS_Request != ""))
   {

a la place de :
  if(VI_PrimKey = ' ')
  {

   if((VI_TimeSpent != ' ')&&(VS_Request != ' '))
   {


Donc :
Mon problème maintenant :
"J'essaye de crée un système pour sauvegarder une ligne de mon tableau dans la
BDD (Insert into et Update).
Je croit que le problème vient du script et non de mes fichier ajax.
Car le fichier Insert_line_daily_timer.ajax.php fonctionne, lorsque je le test. "

Voila le fonctionnement normale :
-On choisit un filtre
-Le tableau correspondant apparait
-Si on appuie sur new on test si il y a une clef primaire
si le request a était choisit et la durée entrée (si oui on insert une nouvelle ligne dans la BDD et dans le tableau HTML)
si non on ajoute une ligne au tableau HTML.
-Si on quitte la ligne on test si il y a une clef primaire si oui si le request !=" " et la durée entrée!="" on fais un update de la ligne dans la base de données, si non si le request !=" " et la durée entrée!="" on fais un insert dans la base de données.

Je pense que se fonctionnement doit être correct.

Voila 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="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
 //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);}
 //}); 
 
 // Variable pour le clonage
 
  
 $('.InsertLine').click(function Insert_line()
 { 
 
  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;
 
  var VI_Description = $(ID_TA_Description).val();
  var VS_Request = $(ID_S_Request).val();
  var VI_TimeSpent = $(ID_I_Time).val();
  var VI_PrimKey = $(ID_I_PrimKey).val();
  var id_PrimKey =" ";
 
  if(VI_PrimKey = " ")
  {

   if((VI_TimeSpent != "")&&(VS_Request != ""))
   {
    //Insert la ligne actuelle dans la base de données
    $.ajax
    ({
     type: 'POST',
     data:
      {
       id_Jour : idJour, 
       id_Worker : idWorker,
       V_I_Description : VI_Description,
       V_S_Request : VS_Request,
       V_I_TimeSpent : VI_TimeSpent
      },
     async: false,
     url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
     success:function(data) {id_PrimKey = data;},
     error: function(error){alert("Erreur : " + error);}
    });
    $(ID_I_PrimKey).val(id_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: visible");
    $('.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('');      
   }
  }
  else
  {
   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: visible");
   $('.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('');
  }
 });

 function Save_Line()
 {
  var VI_Description = $("#TTADescription_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var VS_Request = $("#TSRequest_"+ idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var VI_TimeSpent = $("#TTime_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var VI_PrimKey = $("#TIPrimKey_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var id_PrimKey =" ";
  
  if(VI_PrimKey != " ")
  {
   if((VI_TimeSpent != "")&&(VS_Request != ""))
   {  
    $.ajax
    ({
     type: 'POST',
     data: 
      {
       id_Jour : idJour, 
       id_Worker : idWorker,
       V_I_Description : VI_Description,
       V_S_Request : VS_Request,
       V_I_TimeSpent : VI_TimeSpent
      },
     async: false,
     url:'Update_Line_BDD_Daily_Timer.ajx.php', 
     success:function(data) {},
     error: function(error){alert("Erreur : " + error);}
    });
   }
  }
  else
  {
   if((VI_TimeSpent != "")&&(VS_Request != ""))
   {   
    //Insert la ligne actuelle dans la base de données
    $.ajax
    ({
     type: 'POST',
     data:
      {
       id_Jour : idJour, 
       id_Worker : idWorker,
       V_I_Description : VI_Description,
       V_S_Request : VS_Request,
       V_I_TimeSpent : VI_TimeSpent
      },
     async: false,
     url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
     success:function(data) {id_PrimKey = data;},
     error: function(error){alert("Erreur : " + error);}
    });
    $(ID_I_PrimKey).val(id_PrimKey);
   }
  }
 }

 function DeleteLine(line) 
 {
  var Del_PrimKey = $(ID_I_PrimKey).val()
 
  $.ajax
  ({
   type: 'POST',
   data: 
    {
     Delete_PrimKey : Del_PrimKey, 
    },
   async: false,
   url:'Delete_Line_BDD_Daily_Timer.ajx.php', 
   success:function(data) {},
   error: function(error){alert("Erreur : " + error);}
  });  
  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>


Voila ma question :
Comment je peut faire pour gérer le onmouseout avec mon tableau.Pour l'instant firebug me met se message d'erreur a chaque fois que je quitte un élément de ma ligne:
"ReferenceError: Save_Line is not defined


Save_Line()"

Merci


Merci et que le café soit avec vous.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 14:45
Ce message d'erreur apparait en général :
- Soit par ce que la fonction n'existe pas (ce qui n'est pas ton cas)
- Soit par ce que tu as une erreur de syntaxe quelque part dans ton code (avant ta fonction).. comme une accolade fermante oubliée ou quelque chose du genre.

Je pense que tu peux essayer de placer ta fonction Save_Line() En haut de tes scripts... tu verras si elle passe.
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 14:55
Ok je test
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 15:16
Si je place Save_Line() au dessus de CreateDiv : j'ai se message d'erreur:
ReferenceError: idJour is not defined


Save_Line(idJour, idWorker, idNumLine)

Pourtant idJour,idWorker,idNumLine sont bien définie.
Et comment
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 15:25
Actuellement ta fonction se trouve DANS une autre fonction...CreateDiv.

C'est pour ça que tu avais ta première erreur.

Maintenant que tu l'as sorti correctement.... il t'indique que tes variables ne sont pas initialisées...
Forcément.. ta fonction est la suivante :

function Save_Line() {
  var VI_Description = $("#TTADescription_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var VS_Request = $("#TSRequest_"+ idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var VI_TimeSpent = $("#TTime_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var VI_PrimKey = $("#TIPrimKey_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
  var id_PrimKey =" ";
  
  if(VI_PrimKey != " ")
  {
   if((VI_TimeSpent != "")&&(VS_Request != ""))
   {  
    $.ajax
    ({
     type: 'POST',
     data: 
      {
       id_Jour : idJour, 
       id_Worker : idWorker,
       V_I_Description : VI_Description,
       V_S_Request : VS_Request,
       V_I_TimeSpent : VI_TimeSpent
      },
     async: false,
     url:'Update_Line_BDD_Daily_Timer.ajx.php', 
     success:function(data) {},
     error: function(error){alert("Erreur : " + error);}
    });
   }
  }
  else
  {
   if((VI_TimeSpent != "")&&(VS_Request != ""))
   {   
    //Insert la ligne actuelle dans la base de données
    $.ajax
    ({
     type: 'POST',
     data:
      {
       id_Jour : idJour, 
       id_Worker : idWorker,
       V_I_Description : VI_Description,
       V_S_Request : VS_Request,
       V_I_TimeSpent : VI_TimeSpent
      },
     async: false,
     url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
     success:function(data) {id_PrimKey = data;},
     error: function(error){alert("Erreur : " + error);}
    });
    $(ID_I_PrimKey).val(id_PrimKey);
   }
  }
 }



Il va falloir que tu lui passes en paramètre tes différentes variables....

 function Save_Line(idJour,idWorker) {
 // ... Le reste de ton code


Il te faudra bien entendu, changer également l'appel à cette fonction...(en lui passant les paramètres..).


NB: tu risques d'avoir le même souci avec ta fonction DeleteLine
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 15:33
Après avoir sortie la fonctio de la fonction create div j'ai bien mit mes id en paramètre.
Pour la fonction Delete je ne les pas tester depuis que je lui et rajouter le fichier php pour la suppression dans la BDD, mais avant cela elle me supprimer bien une ligne, pas celle ou il y avait le bouton sur lequel on a appuyer mais la dernière ligne du tableau il faudra que je regarde sa aussi ^^.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 15:37
Donc tu as bien ajouté les ID également lors de l'appel à ta fonction ?
onmouseout="Save_Line(idJour,idWorker)
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 15:43
oui :
//Ajoute une ligne au tableau du jour
	$("#TJour_" + idJour+'_'+ idWorker).append('<tr align="center" onmouseout="Save_Line(idJour, idWorker, idNumLine)" id="Row2_' + idJour+'_'+ idWorker+'_'+ idNumLine + '"></tr>'); 

et :
function Save_Line(idJour, idWorker, idNumLine)
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 15:55
Heu...plutot un truc de ce genre là non ?
onmouseout="Save_Line("+idJour+","+ idWorker+","+ idNumLine +")"
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
Modifié par EnguerrandP le 30/04/2014 à 16:06
j'ai essayer sa a changer le message d'erreur:
SyntaxError: syntax error


Save_Line(


jquery-1.11.0.js (ligne 9050, col. 10)

cette fois l'erreur ne s'incrémente pas a chaque fois que je quitte la lign mais apparait la première fois que je quitte la ligne.
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
Modifié par EnguerrandP le 30/04/2014 à 16:51
l'idJour reçut dans la fonction Save_Line et incorrect il me met 1999,mais les deux autre id sont eux juste de plus lors de l'envoi plus de la moutier de mes variable ne sont pas lister dans post.
voila le code:
Jscript
function Save_Line(idJour, idWorker, idNumLine)
{
 var VI_Description = $("#TTADescription_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
 var VS_Request = $("#TSRequest_"+ idJour+'_'+ idWorker+'_'+ idNumLine).val();
 var VI_TimeSpent = $("#TTime_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
 var VI_PrimKey = $("#TIPrimKey_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
 var id_PrimKey =" ";

 if(VI_PrimKey != " ")
 {
  if((VI_TimeSpent != "")&&(VS_Request != ""))
  {  
   $.ajax
   ({
    type: 'POST',
    data: 
     {
      id_Jour : idJour, 
      id_Worker : idWorker,
      V_I_Description : VI_Description,
      V_S_Request : VS_Request,
      V_I_TimeSpent : VI_TimeSpent,
      Val_PrimKey : VI_PrimKey
     },
    async: false,
    url:'Update_Line_BDD_Daily_Timer.ajx.php', 
    success:function(data) {},
    error: function(error){alert("Erreur : " + error);}
   });
  }
 }
 else
 {
  if((VI_TimeSpent != "")&&(VS_Request != ""))
  {   
   //Insert la ligne actuelle dans la base de données
   $.ajax
   ({
    type: 'POST',
    data:
     {
      id_Jour : idJour, 
      id_Worker : idWorker,
      V_I_Description : VI_Description,
      V_S_Request : VS_Request,
      V_I_TimeSpent : VI_TimeSpent
     },
    async: false,
    url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
    success:function(data) {id_PrimKey = data;},
    error: function(error){alert("Erreur : " + error);}
   });
   $(ID_I_PrimKey).val(id_PrimKey);
  }
 }
}


php celui-ci et surement correct
<?php
 include('connexion.php');
 $idJour = isset($_POST['id_Jour'])?$_POST['id_Jour']:'';  // !
 $idWorker = isset($_POST['id_Worker'])?$_POST['id_Worker']:'';  // !
 $VI_Description = isset($_POST['V_I_Description'])?$_POST['V_I_Description']:'';  // !
 $VS_Request = isset($_POST['V_S_Request'])?$_POST['V_S_Request']:'';  // !
 $VI_TimeSpent = isset($_POST['V_I_TimeSpent'])?$_POST['V_I_TimeSpent']:'';  // !
 $PrimKey = isset($_POST['Val_PrimKey'])?$_POST['Val_PrimKey']:'';  // !
 
 $sql = "UPDATE caetbl_timetracking 
   SET  SimRequest = '$VS_Request',
     Description='$VI_Description',
     date='$idJour',
     time_spent='$VI_TimeSpent',
     Worker='$idWorker'
   WHERE caetbl_timetracking.ID='$PrimKey'";

 mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 ?> 


autre problème il appel plus d'une fois la fonction Save_Line lorsque je quitte une ligne .
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 avril 2014 à 17:03
Autre problème il appel plus d'une fois la fonction Save_Line lorsque je quitte une ligne

Tu en déduis quoi ? ..... Qu'il te faut ajouter un test pour savoir si la ligne existe déjà ou non avant de la créer...

'idJour reçut dans la fonction Save_Line et incorrect il me met 1999
Ca veut dire que lorsque tu appelles la fonction.. la variable n'est pas bonne...
Il faut donc regarder là où tu appelles la fonction.
Donc dans le code :
/Ajoute une ligne au tableau du jour
	$("#TJour_" + idJour+'_'+ idWorker).append('<tr align="center" onmouseout="Save_Line('+idJour+','+ idWorker+','+ idNumLine+')" id="Row2_' + idJour+'_'+ idWorker+'_'+ idNumLine + '"></tr>');


... As-tu mis des ALERT pour essayer de voir ce que valent tes variables à cet endroit ??
S'il n'est pas bon ici... c'est que tu as un souci plus haut dans ton code...
A toi de trouver où.

la moitié de mes variables ne sont pas listées dans post.
=> Vu que ton ID_JOUR n'est pas le bon... tes variables
 var VI_Description = $("#TTADescription_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
 var VS_Request = $("#TSRequest_"+ idJour+'_'+ idWorker+'_'+ idNumLine).val();
 var VI_TimeSpent = $("#TTime_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
 var VI_PrimKey = $("#TIPrimKey_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();


qui s'initialisent grâce à lui.. ne sont pas bonnes non plus... normal !


0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
30 avril 2014 à 17:50
Ok , je vais essayer d'installer php sur mon mac sinon je ne pourrait pas tester avant lundi matin.
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
Modifié par EnguerrandP le 5/05/2014 à 08:49
Je vient de faire les test avant la fonction save mes variable sont juste mais arriver dans la fonction le woker et le numéro de ligne sont juste et la date fausse.
Je ne comprend pas pourquoi une seule des variable et fausse.
J'ai aussi essayer en modifier le nom de id jour en IDjourS dans les paramètre de la fonction save mais sa na rien changer.
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
5 mai 2014 à 11:40
Bonjour, j'ai trouver une solution mais elle et vraiment pas très "belle".
J'ai crée un input qui contient idJour et dans SaveLine je définie la valeur de idJour avec la valeur de mon input. Se qui ma permit de confirmer que ma fonction fonctionne correctement.
Pouvez vous m'aider a trouvez une solution plus élégante .
0
EnguerrandP Messages postés 295 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 15 juillet 2015 1
Modifié par EnguerrandP le 5/05/2014 à 12:51
Bonjour, avec ce code:
<?xml version="1.1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>Daily Timers Save</title>
	<meta http-equiv="content-type" content="text/php; charset=ISO-8859-1"></meta>
	<!-- CSS -->
	<link rel="stylesheet" href="media/css/demo_page.css" type="text/css"></link>
	<link rel="stylesheet" href="media/css/demo_table.custom.css" type="text/css"></link>
	<link rel="stylesheet" href="media/css/demo_table_jui.css" type="text/css"></link>	
	<link rel="stylesheet" href="media/css/jquery-ui-1.10.4.custom.css"></link>
	<link rel="stylesheet" href="media/css/Interface_Style.css"></link>	
	<link rel="stylesheet" href="media/css/Calendar_Fixe_Design/jquery.datepick.css"></link>	
	
	<!-- general JavaScript -->
	<script type="text/javascript" src="media/js/jquery-1.11.0.js"></script>
	<script type="text/javascript" src="media/js/jquery-ui-1.10.4.custom.js"></script>
	<script type="text/javascript" src="media/js/JS_JQuery_Datepick_Pluging.js"></script>
	<script type="text/javascript" src="media/js/JS_JQuery_Datepick.js"></script>
	
	 <script type="text/javascript">
		$(function() 
		{
			$( '.datepicker' ).datepicker();
		});
	</script>	
</head>

<?php include('connexion.php');?>

<body style="background-image:url(media/image/fond_Gris.jpg)">

<div id="Top_Worker">
	WORKER :
	<?php
		$sql = "SELECT caetbl_people.PeopleID, caetbl_people.LastName, caetbl_people.FirstName
				FROM caetbl_people 
				INNER JOIN caetbl_GroupList 
				ON caetbl_GroupList.GroupID = caetbl_people.Group
				WHERE caetbl_GroupList.Group_Name='C&EA'
				ORDER BY caetbl_people.LastName;";
		
		$result = mysql_query($sql)or die("Requete pas comprise");
		echo '<select  
					name=\"Top_Worker\" 
					id=TopWorker >
					<option value=\"\" onChange=\"saveValue(this)\"></option>c';
		while ($row=mysql_fetch_assoc($result)) 
		{
			echo "<option value=\"". $row['PeopleID'] ." ". $row['LastName'] ." ". $row['FirstName']."\">"
			.$row['LastName'] ." ". $row['FirstName'] ."</option>\n"; 
		}
		echo "</select></td></tr>\n
			  </form>\n";
	?>
</div>

<button id="Return" title="Return menu" type="button" onclick="self.location.href='Administrators_Menu.php'">
			<img src="media/image/return_menu.jpg">
</button>

<div id="inlineDatepick"></div>
 
<fieldset id="Daily_Fieldset">
	<legend> DAILY TIMETABLE per request</legend>
	<div id="Zone_Tab">
	</div>	
</fieldset> 
<br /> 
<input type="hidden" value="" id="DaySelSave" />
<style>
#inlineDatepick
{
	margin-top: 20px;
    margin-left:0px;          
}

#Top_Worker
{
	position : absolute;
	margin-top: 0px;
    margin-left:630px;          
}

#Return
{
	position : absolute;
	margin-top: 145px;
    margin-left:750px;          
}

#Daily_Fieldset
{				
    border: 1px inset #000000;
    width:890px;
	margin: 0;
	padding:0;
    margin-top:30px;
    margin-left:0px;	
}

#Zone_Tab
{ 
	overflow: auto;   
	height: 470px;
	margin-top:0px;
    margin-left:0px;          
}
</style>
<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="Save_Line('+ idWorker+','+idJour+',' +idNumLine+');" id="Row2_' + idJour+'_'+ idWorker+'_'+ idNumLine + '"></tr>'); //onmouseout="Save_Line()"
	//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); 
	$("#DaySelSave").val(idJour);

	//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:'Create_Line_BDD_In_HTML_Daily_Timer.ajx.php', 
	//	success:function(data) {$("#TJour_" + idJour+'_'+ idWorker).append(data);},
	//	error: function(error){alert("Erreur : " + error);}
	//});	
	
	// Variable pour le clonage
	
		
	$('.InsertLine').click(function Insert_line()
	{	
	
		var Line ="#Row2_" + idJour+'_'+ idWorker +'_'+idNumLine;
		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;
	
		var VI_Description = $(ID_TA_Description).val();
		var VS_Request = $(ID_S_Request).val();
		var VI_TimeSpent = $(ID_I_Time).val();
		var VI_PrimKey = $(ID_I_PrimKey).val();
	
		if(VI_PrimKey = " ")
		{
			var id_PrimKey =" ";
			if((VI_TimeSpent != "")&&(VS_Request != ""))
			{
				//Insert la ligne actuelle dans la base de données
				$.ajax
				({
					type: 'POST',
					data:
						{
							id_Jour : idJour, 
							id_Worker : idWorker,
							V_I_Description : VI_Description,
							V_S_Request : VS_Request,
							V_I_TimeSpent : VI_TimeSpent
						},
					async: false,
					url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
					success:function(data) {id_PrimKey = data;},
					error: function(error){alert("Erreur : " + error);}
				});
				$(ID_I_PrimKey).val(id_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('');						
			}
		}
		else
		{
			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('');
		}
	});

	function DeleteLine(line) 
	{
		var Del_PrimKey = $(ID_I_PrimKey).val()
	
		$.ajax
		({
			type: 'POST',
			data: 
				{
					Delete_PrimKey : Del_PrimKey, 
				},
			async: false,
			url:'Delete_Line_BDD_Daily_Timer.ajx.php', 
			success:function(data) {},
			error: function(error){alert("Erreur : " + error);}
		});		
		line.parentNode.removeChild(line);
	}
	
	
}

function Save_Line(idWorker, idJour,  idNumLine)
{
	var idJour =$("#DaySelSave").val();
	var VI_Description = $("#TTADescription_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
	var VS_Request = $("#TSRequest_"+ idJour+'_'+ idWorker+'_'+ idNumLine).val();
	var VI_TimeSpent = $("#TTime_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
	var VI_PrimKey = $("#TIPrimKey_" + idJour+'_'+ idWorker+'_'+ idNumLine).val();
	var id_PrimKey =" ";

	if(VI_PrimKey != " ")
	{
	
		if((VI_TimeSpent != "")&&(VS_Request != ""))
		{
		alert("Key : "+VI_PrimKey);
			$.ajax
			({
				type: 'POST',
				data: 
					{
						id_Jour : idJour, 
						id_Worker : idWorker,
						V_I_Description : VI_Description,
						V_S_Request : VS_Request,
						V_I_TimeSpent : VI_TimeSpent,
						Val_PrimKey : VI_PrimKey
					},
				async: false,
				url:'Update_Line_BDD_Daily_Timer.ajx.php', 
				success:function(data) {},
				error: function(error){alert("Erreur : " + error);}
			});
		}
	}
	else
	{
		if((VI_TimeSpent != "")&&(VS_Request != ""))
		{			
			//Insert la ligne actuelle dans la base de données
			$.ajax
			({
				type: 'POST',
				data:
					{
						id_Jour : idJour, 
						id_Worker : idWorker,
						V_I_Description : VI_Description,
						V_S_Request : VS_Request,
						V_I_TimeSpent : VI_TimeSpent
					},
				async: false,
				url:'Insert_Line_BDD_Daily_Timer.ajx.php', 
				success:function(data) {id_PrimKey = data;},
				error: function(error){alert("Erreur : " + error);}
			});
			$(ID_I_PrimKey).val(id_PrimKey);
		}
	}
}


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>
</body>
</html>

Je ne peut mettre que une ligne a jour comment je peut faire pour mettre a jour la ligne que je quitte sachant que sa clef primaire et contenut dans un input qui a un id de type: Prim_Key_la date_l'employer_N°ligne.
Merci
0
Rejoignez-nous