J'appel un modal et son contenu via cette fonction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*-- Gestion des numéros de série --*/
function SerialNumber( elt ) {
	$.ajax( { type: 'POST', url: '../../../Formulaire/content/form-serial.php', data: { elt: elt.article } } )
		.done( function( data ) {
			$( '#Modal-Form' )
				.data( { 'maxHeight': 600, 'width': '35%' } )
				.html( data )
				.modal( )
				.on( 'hidden', function( ) {
					elt.article = Get_Data( );
					$( '#Modal-Form' ).off( 'keydown' );
					$( '#Modal-Form' ).off( 'hidden' );
				} );
		} );
}
et je charge ce contenu

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if( isset( $_POST['elt']['serial_token'] ) )
	echo count( $_POST['elt']['serial_token']);
?>
 
<!-- HTML -->
	<div class="modal-header">
		<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
		<h3 id="myModalLabel">Saisie des numéros de série</h3>
	</div>
 
	<div class="modal-body">
		<div class="container-fluid body">
 
		</div>
	</div>
 
	<div class="modal-footer">
		<button class="btn btn-primary" data-dismiss="modal">Ok</button>
	</div>
<!-- Fin -->

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
( function( ) {
	var elt = <?php if( isset( $_POST["elt"] ) ) echo json_encode( $_POST["elt"] ); ?>,
	KindOfSerial = [],
	SerialNumber = '',
	ligne = '';
	if( elt.serial_number == undefined )
		elt['serial_number'] = [];
	if( elt.serial_token == undefined )
		elt['serial_token'] = [];
	else {
		for( var a in elt.serial_token ) {
			ligne += '<tr> <td>'+elt.serial_token[a].numero+'</td>'+
			'<td> <ul class="hover-toggle"> <li> <i class="icon-remove"> </i> </li> </ul> </td> <td contenteditable="true"> </td> </tr>';
		}
	}
	$( '#Modal-Form' ).position( );
	$( '#Modal-Form .modal-body .body' ).append( '<div class="alert alert-info">Numéro de série correspondant à : '+elt.designation+' (réf: '+elt.reference+') </div>' );
	$( '#Modal-Form .modal-body .body' ).append( '<div class="row-fluid"> <p class="text-info pull-right">'+elt.serial_number.length+' numéros de série enregistrés et disponible</p> </div>' );
	$( '#Modal-Form .modal-body .body' ).append( '<div class="row-fluid"> <p class="text-success pull-right refresh">'+elt.serial_token.length+' numéros de série scannées</p> </div>' );
	$( '#Modal-Form .modal-body .body' ).append( 
		'<div class="row-fluid"> <input type="text" data-type="aln" id="NUM" class="span6" placeholder="Numéro de série">'+
		'<button class="btn btn-primary" id="Add2Tab">Ajouter</button> </div>'
	);
	$( '#Modal-Form .modal-body .body' ).append( '<div class="row-fluid"> <p class="info"> </p> </div>' );
	$( '#Modal-Form .modal-body .body' ).append(
		'<table id="tableSerial" class="table table-striped table-hover table-bordered table-condensed">'+
		'<thead> <tr> <th> Numéro de Série </th> <th> </th> <th> Id </th> </tr> </thead> <tbody class="bodySerial"> </tbody> </table>'
	);
	$( '#Modal-Form .bodySerial' ).append( ligne );
	$( '.info' ).hide( );
	$( '.bodySerial' ).on( 'click', 'tr ul li i', function( ) {
		var Serial = $( this ).parents( 'tr' ).find( 'td:eq(0)' ).text( );
		if( $( this ).hasClass( 'icon-remove' ) ) {
			$( this ).parents( 'tr' ).remove( );
			for( var a in elt.serial_token ) {
				if( Serial == elt.serial_token[a].numero ) {
					if( elt.serial_token[a].id != undefined && elt.serial_token[a].id != '' ) {
						$.ajax( {
							type: 'POST',
							dataType: 'json',
							url: '../ajax/gestion.php',
							data: { 'numberline': elt.serial_token[a].id }
						} )
						.done( function( data ) { 
							if( data != null ) 
								fn_alert( 'Erreur', data+'<span>Contactez l\'administrateur du système</span>', 'Ok' );
						} )
						.fail( function( ) { 
							fn_alert( 'Erreur', 'La requête n\'a pas aboutie. Contactez l\'administrateur du système', 'Ok' );
						} );
					}
					elt.serial_token.splice( a, 1 );
				}					
			}
		}
	} );
	$( '#Modal-Form' )
	.not( '#NUM' )
	.keydown( function ( e ) {
		KindOfSerial.push( e.keyCode );
		if( e.keyCode == 13 ) {
			$( '#NUM' ).val( '' );
			Flash( KindOfSerial );
			KindOfSerial = [];
		}
	} );
	$( '#NUM' ).on( 'keydown', function( e ) {
		if( e.which == 13 ) {
			e.stopPropagation( );
			CheckSerial( $( this ).val( ) );
			KindOfSerial = [];
			$( this ).val( '' );
		}
	} );
	$( '#Add2Tab' ).on( 'click', function( e ) {
		CheckSerial( $( '#NUM' ).val( ) );
		KindOfSerial = [];
		$( '#NUM' ).val( '' );
	} );
	function Flash( KindOfSerial ) {
		var Serial 	= '';
		for( var a in KindOfSerial )
			if( KindOfSerial[a] != 16 ) 
				Serial += String.fromCharCode( KindOfSerial[a] );
		CheckSerial( Serial );
	}
	function CheckSerial( Serial ) {
		var flag = false;
		Serial = Serial.replace( /\s/g , '' );
		for( var a in elt.serial_token ) {
			if( elt.serial_token[a].numero == Serial ) {
				$( '.info' )
				.text( 'Vous avez déjà scanné le numéro: '+Serial )
				.addClass( 'text-error' )
				.show( );
				flag = true;
			}
		}
		if( !flag ) {
			for( var a in elt.serial_number ) {
				if( elt.serial_number[a].numero == Serial ) {
					$( '.bodySerial' ).prepend( '<tr> <td>'+elt.serial_number[a].numero+'</td> <td> <ul class="hover-toggle"> <li> <i class="icon-remove"> </i> </li> </ul> </td> <td contenteditable="true"> </td> </tr>' );
					$( '#Modal-Form' ).position( );
					elt.serial_token.push( elt.serial_number[a] );
					$( '#Modal-Form .refresh' ).html( elt.serial_token.length+' numéros de série scannées' );
					flag = true;
					return;
				}
			}
			if( !flag ) {
				SerialNumber = Serial;
				$( '.btn-margin' ).remove( );
				$( '.info' )
				.text( 'Le numéro de série '+Serial+' ne correspond à aucun numéro de série disponible pour le produit '+elt.designation+'!' )
				.after( '<a href="javascript:AddSerial( )"><button class="btn btn-margin">Enregistrer le numéro de série</button></a>' )
				.addClass( 'text-error' )
				.show( );
			}
			else
				if( $( '.info' ).hasClass( 'text-error' ) ) {
					$( '.info' )
					.text( '' )
					.removeClass( 'text-error' )
					.hide( );
					$( '.btn-margin' ).remove( );
				}
		}
	}
	Get_Data = function( ) {
		return elt;
	}
	AddSerial = function( ) {
		$.ajax( {
			type: 'POST',
			dataType: 'json',
			url: '../../../Formulaire/ajax/formulaire.php',
			data: { 'numeroSerie': SerialNumber, 'Ref': elt.id },
			success: function( data ) { 
				if( data[1] == 'success' ) {
					$( '.info' )
					.text( '' )
					.removeClass( 'text-error' )
					.hide( );
					$( '.btn-margin' ).remove( );
					$( '.bodySerial' ).prepend( '<tr> <td>'+SerialNumber+'</td> <td> <ul class="hover-toggle"> <li> <i class="icon-remove"> </i> </li> </ul> </td> <td contenteditable="true"> </td> </tr>' );
					$( '#Modal-Form' ).position( );
					elt.serial_token.push( { numero: SerialNumber } );
					elt.serial_number.push( { numero: SerialNumber } );
					$( '#Modal-Form .refresh' ).html( elt.serial_token.length+' numéros de série scannées' );
					fn_alert( 'Succés', data[0]+'</br>'+data[2], 'Ok' );
				} else 
					fn_alert( 'Erreur', 'Une erreur est survenue: </br>'+data[0], 'Ok' );
			}
		} );
	}
} ) ( );
le problème est que pour un cas je ne récupère par entièrement le contenu de ma variable serial_token pourtant l'ensemble est bien passé via AJAX en post

???? une idée