PHP - Ayuda Ajax y PHP para realizar factura de tabla dinamica

   
Vista:

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Ed Anciani (3 intervenciones) el 31/01/2014 07:40:22
Buenas programadores,

tengo el siguiente problema y espero su ayuda, gracias de antemano...

Como verán en el código esta todo bien no tengo ningún problema, explico: al ingresar la cedula, documento, o ID del cliente ej:20103223 inmediatamente jquery me busca el cliente, si no esta no arroja resultados y lo ingresamos manualmente, luego de tener el ID, nombre y telefono del cliente, se procede a buscar los productos a vender, estos se encuentran en los botones presentes, seria producto1 , producto 2, producto 3(los cuales al presionar llaman a la base de datos mediante ajax y php para ingresar el producto y el monto dinamicamente en unos inputs y queda disponible solo 1 para la cantidad de dicho producto a vender), y por ultimo producto4 (el cual arroja unos inputs vacios para ingresar manualmente la cantidad, la descripcion de la venta y el monto), perfecto, luego esta un boton de agregar el producto (+) el cual lo inserta dinamicamente(mediante un createElement()) en una tabla, la cantidad del producto, la descripcion y el monto, insertando cuantos productos quieras vender, al final hay un input text el cual muestra el total de la compra, Perfecto hasta aqui todo muy bien.

Mi problema es este que al querer enviar los datos COMPLETOS a la pagina addevent.php sinceramente no se como sacar todos los valores de la tabla es decir la cantidad la descripcion y el monto de cada uno, he intentado como pueden ver insertandole dinamicamente un id a cada <td>, pero si por ejemplo hay mas de un producto ej:
| 4 | camisas | 300|
| 2 | pantalones | 200|
quiero realizar una factura enviarla a la base de datos y luego si quiero en un futuro revisar mis ventas consultar a la base de datos y adquirir la factura con el ID, nombre, tlf, productos, cantidad y monto de cada uno, el total y la fecha.

no se si me explique, pero aqui esta el codigo.
espero su respuesta.
html
--------------------------------------------------------------------------------------------------------------------------------------------------
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
<!doctype html>
<html>
<head>
    <title>Facturar</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="js/funciones.js"></script>
</head>
  <body>
          <div class="jumbotron">
            <h2>Ingreso de cliente</h2>
            <form class="form-signinven" method="post" name="recibo" id="recibo" action=addventa.php>
            <input name="cedcliente" type="text" required  class="form-control" id="cedcliente" placeholder="Cedula del cliente" autofocus autocomplete="off" size="30"/>
            <input type="text" class="form-control" placeholder="Nombre del cliente" name="nomcliente" id="nomcliente" autocomplete="off"  required/>
            <input type="text" class="form-control" placeholder="Telefono del cliente" name="tlfcliente" id="tlfcliente" autocomplete="off" required/>
 
           <h4>Ingresa productos</h4>
      <input type="button" class="btn btn-sm btn-info" name="bb" id="bb" value="camisa" onClick="producto1();" >
      <input type="button" class="btn btn-sm btn-info" name="bb" id="bb" value="pantalon" onClick="producto2();" >
      <input type="button" class="btn btn-sm btn-info" name="bb" id="bb" value="zapato" onClick="producto3();" >
      <input type="button" class="btn btn-sm btn-info" name="bb" id="bb" value="Otro" onClick="producto4();" >
 
    </p>
    <div class="agregar" id="datapro">
 
</div>
  <p>
    <input type="button" class="btn btn-group-sm btn-success" name="agrega" id="agrega" value="+" onClick="listado();">
  </p>
  <table class="tablalista" id="listado" width="100%" border="1">
    <tr>
    <th class="cant">Cant.</th>
    <th class="prod">Descripcion</th>
    <th class="precio">Monto</th>
    <th class="eliminar">Est</th>
  </tr>
</table>
 <div id="ppp" class="total">Total: <input type="text" name="pago" id="pago" value="0">
</div>
<div id="hidden"></div>
<p>&nbsp;</p>
            <input type="submit" class="btn btn-lg btn-success" id="vender" value="Confirmar"/>
                      </form>
                      <div id="aviso"></div>
          </div>
          <hr>
        </div>
      </div>
    </div>
 
</html>
------------------------------------------------------------------------------------------------------------------------------------------

Funciones.js acciones de la pagina
-------------------------------------------------------------------------------------------------------------------------------------------
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
$(document).ready(function(){
 
        var consulta;
 
         //hacemos focus al campo de búsqueda
        $("#cedcliente").focus();
 
        //comprobamos si se pulsa una tecla
        $("#cedcliente").keyup(function(e){
 
              //obtenemos el texto introducido en el campo de búsqueda
              consulta = $("#cedcliente").val();
 
              //hace la búsqueda
 
              $.ajax({
                    type: "POST",
                    url: "nomcliente.php",
                    data: "b="+consulta,
                    dataType: "html",
                    beforeSend: function(){
                          //imagen de carga
                          $("#nomcliente").val("Buscando.....");
                    },
                    error: function(){
                          alert("error petición ajax");
                    },
                    success: function(data){
                          $("#nomcliente").empty();
                          $("#nomcliente").val(data);
 
                    }
              });
                 $.ajax({
                    type: "POST",
                    url: "tlfcliente.php",
                    data: "c="+consulta,
                    dataType: "html",
                    beforeSend: function(){
                          //imagen de carga
                          $("#tlfcliente").val("Buscando.....");
                    },
                    error: function(){
                          alert("error petición ajax");
                    },
                    success: function(data){
                          $("#tlfcliente").empty();
                          $("#tlfcliente").val(data);
 
                    }
              });
 
        });
});
//aqui estamos buscando los productos en la BD
function producto1(){
		var d=1;
 
		try{ var ajax= new ActiveXObject("Msxml2.XMLHTTP"); }
		catch(e){
			try{ var ajax=new ActiveXObject("MicrosoftXMLHTTP"); }
		catch(E){ var ajax=false; }
		}
 
		if (!ajax && typeof XMLHttpRequest!='undefined'){
			var ajax=new XMLHttpRequest();
		}
 
		ajax.onreadystatechange=function(){
		var zona=document.getElementById("datapro");
		if (ajax.readyState==4){
		   if (ajax.status==200){
			zona.innerHTML=ajax.responseText;
		    }}
		}
 
		ajax.open("POST","buscaproducto.php",true);
		ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		ajax.send("codigo="+d);
 
   		}
		function producto2(){
		var d=2;
 
		try{ var ajax= new ActiveXObject("Msxml2.XMLHTTP"); }
		catch(e){
			try{ var ajax=new ActiveXObject("MicrosoftXMLHTTP"); }
		catch(E){ var ajax=false; }
		}
 
		if (!ajax && typeof XMLHttpRequest!='undefined'){
			var ajax=new XMLHttpRequest();
		}
 
		ajax.onreadystatechange=function(){
		var zona=document.getElementById("datapro");
		if (ajax.readyState==4){
		   if (ajax.status==200){
			zona.innerHTML=ajax.responseText;
		    }}
		}
 
		ajax.open("POST","buscaproducto.php",true);
		ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		ajax.send("codigo="+d);
 
   		}
		function producto3(){
		var d=3;
 
		try{ var ajax= new ActiveXObject("Msxml2.XMLHTTP"); }
		catch(e){
			try{ var ajax=new ActiveXObject("MicrosoftXMLHTTP"); }
		catch(E){ var ajax=false; }
		}
 
		if (!ajax && typeof XMLHttpRequest!='undefined'){
			var ajax=new XMLHttpRequest();
		}
 
		ajax.onreadystatechange=function(){
		var zona=document.getElementById("datapro");
		if (ajax.readyState==4){
		   if (ajax.status==200){
			zona.innerHTML=ajax.responseText;
		    }}
		}
 
		ajax.open("POST","buscaproducto.php",true);
		ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		ajax.send("codigo="+d);
 
   		}
		function producto4(){
//Este esta sin variable porque aqui se agregara un producto o una descripcion de venta que no este en la base de datos
		try{ var ajax= new ActiveXObject("Msxml2.XMLHTTP"); }
		catch(e){
			try{ var ajax=new ActiveXObject("MicrosoftXMLHTTP"); }
		catch(E){ var ajax=false; }
		}
 
		if (!ajax && typeof XMLHttpRequest!='undefined'){
			var ajax=new XMLHttpRequest();
		}
 
		ajax.onreadystatechange=function(){
		var zona=document.getElementById("datapro");
		if (ajax.readyState==4){
		   if (ajax.status==200){
			zona.innerHTML=ajax.responseText;
		    }}
		}
 
		ajax.open("POST","otroproducto.php",true);
		ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		ajax.send();
 
   		}
	function actual(){
	var n=new Date();
	var f=document.getElementById("fecha");
	f.value=n.getFullYear()+"-"+n.getMonth()+"-"+n.getDay();
 
	}
//agregando dinamicamente los productos en la tabla.
function listado(){
	var c=document.getElementById("codigo");
	var can=document.getElementById("cantidad");
	var des=document.getElementById("descripcion");
	var pre=document.getElementById("precio");
	var x=parseInt(can.value);
	var st=x*parseInt(pre.value);
 
		var t=document.getElementById("listado");
		var l=t.rows.length;
		t.insertRow(l);
 
		var c1=document.createElement("td");
		a=des.value;
		c1.setAttribute("id",a+"1");
		c1.innerHTML=(can.value);
 
		var c2=document.createElement("td");
		b=des.value;
		c2.setAttribute("id",b+"2");
		c2.innerHTML=(des.value);
 
		var c3=document.createElement("td");
		c=des.value;
                c3.setAttribute("id",c+"3");
		c3.innerHTML=st;
 
		var c4=document.createElement("td");
		c4.innerHTML=("<td><input type='button' class=\"elimina\"  id='eliminar'/></td>");
		var f=0;
		t.rows[l].appendChild(c1);
		t.rows[l].appendChild(c2);
		t.rows[l].appendChild(c3);
		t.rows[l].appendChild(c4);
 
		var p=document.getElementById("pago");
		var dinero=parseInt(p.value);
		p.value=dinero+st;
$(".elimina").click(function(){
                    if (confirm("Desea eliminar Producto")){
                        $(this).parents("tr").fadeOut("normal", function(){
                            $(this).remove();
							var p=document.getElementById("pago");
					var dinero=parseInt(p.value);
						p.value=dinero-st;
                        })
                   	}
                });
}
 function vender(){
// intente mendiante un function llamado vender pero la verdad no tengo idea que variable colocar, me refiero a la tabla ya que no se cuantos productos vaya a vender a un cliente pueden ser 3 o 4 o 10 y cuales sean.
}
------------------------------------------------------------------------------------------------------------------------------------------
buscarproducto.php aqui consulta a la base de datos para buscar el producto a agregar.
------------------------------------------------------------------------------------------------------------------------------------------
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
<?php
$d=$_POST['codigo'];
 
$c=mysql_connect("localhost","root","");
mysql_select_db("vplanetdb");
 
$consulta="select * from productos where id=$d";
$r=mysql_query($consulta);
 
$l=mysql_num_rows($r);
if ($l>0){
$dato=mysql_fetch_row($r);
echo ("<table><tr><td>Cantidad</td><td>Descripcion</td><td>Precio</td></tr>");
echo ("<input type=\"hidden\" id=\"codigo\" value=\"$dato[0]\"");
echo ("<tr><td ><input type=\"number\"  name=\"cantidad\" id=\"cantidad\" min=1 size=2 value=\"1\"></td>");
echo ("<td><input type=\"text\" name=\"descripcion\" id=\"descripcion\" value=\"$dato[1]\" DISABLED></td>");
echo ("<td><input type=\"text\" name=\"precio\" id=\"precio\" value=\"$dato[2]\" DISABLED></td>");
 
}
else{
echo("<h6 align=\"center\">Codigo de producto incorrecto <h6> ");
 
}
 
mysql_close();
?>
----------------------------------------------------------------------------------------------------------------------------------------------------
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por bathorz (1 intervención) el 03/02/2014 15:42:28
Esto tal vez te ayude:

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
<!DOCTYPE html>
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title></title>
      <script src="..rutaAtuJQuery/jquery.min203.js" type="text/javascript"></script>
      <script type="text/javascript">
         $(document).ready(function() {
            function consulta(id, url, out) {
               $.ajax({
                  type: "POST",
                  url: url,
                  data: $(id).serialize(),
                  success: function(data) {
                     $(out).html(data);
                  }
               });
               return false;
            }
            //(id del formulario, archivo de proceso, elemento de salida)
            $("#confirmar").click(function() {
               consulta("#recibo", "buscarproducto.php", "#salida");
            });
         });
      </script>
   </head>
   <body>
      <form method="post" name="recibo" id="recibo">
         <div class="jumbotron">
            <h2>Ingreso de cliente</h2>
            <input name="cedcliente" type="text" id="cedcliente" placeholder="Cedula del cliente" autofocus autocomplete="off" size="30"/>
            <input type="text" class="form-control" placeholder="Nombre del cliente" name="nomcliente" id="nomcliente" autocomplete="off"  required/>
            <input type="text" class="form-control" placeholder="Telefono del cliente" name="tlfcliente" id="tlfcliente" autocomplete="off" required/>
            <table class="tablalista" id="listado" border="1">
               <tr>
                  <th class="cant">Cant.</th>
                  <th class="prod">Descripcion</th>
                  <th class="precio">Monto</th>
               </tr>
               <!-- Simula los valores devueltos de la consulta -->
               <tr>
                  <td><input type="text" name="cant[]" value="10" /></td>
                  <td><input type="text" name="prod[]" value="ppp1" /></td>
                  <td><input type="text" name="precio[]" value="100" /></td>
               </tr>
               <tr>
                  <td><input type="text" name="cant[]" value="15" /></td>
                  <td><input type="text" name="prod[]" value="ppp2" /></td>
                  <td><input type="text" name="precio[]" value="110" /></td>
               </tr>
            </table>
         </div>
         <input type="button" name="confirmar" id="confirmar" value="confirmar">
      </form>
      <div id="salida"></div>
   </body>
</html>

buscarproducto.php:
1
2
3
<?php
var_dump($_POST);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Ed Anciani (3 intervenciones) el 04/02/2014 17:31:33
Barthoz, muchas gracias me ayudas a optimizar un poco el código q tenia, pero ya todo el código que enseñé, busco el producto y todo, necesito es facturar todo el proceso, que me guarde en la base de datos la compra que se realizó, el ID, nombre y teléfono del cliente, los productos que están en la tabla lo cual es mi actual problema (ya que no puedo extraer los datos de la tabla y pasarlos a un documento php que me conecta con la base de datos y guardarla) y el total, y así ingresar a una pagina que servirá como historial.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por bathorz (1 intervención) el 05/02/2014 19:29:21
En el ejemplo que puse ya estás enviando los datos al php (buscarproducto.php) por medio de la global POST.
Desde este, a través del var_dump(), se devuelven esos mismos datos.
Por lo tanto se envían y se reciben datos hacia y desde el php.

Ahora bien, lo que tienes que hacer ahora es procesar esos datos que llegaron al php:
En vez de "buscarproducto.php" ponle proceso.php, o el que desees, y en él:
1
2
3
4
5
6
1. conectas a la BBDD.
	2. haces la query e ingresas los datos.
	3. confirmas que los datos se han guardado mediante:
		a) un mensaje.
		b) retornas un tabla o lo que desees con la información.
		*cualquier echo en el php será enviado a <div id="salida"></div>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Ed Anciani (3 intervenciones) el 06/02/2014 18:27:11
Barthoz, muchas gracias, ya entendí.

Ahora coloco los input en la tabla de recibo, claro lo ingreso mediante javascript, le genero un name individual a cada uno?
Ejemplo.

<tr>
<td><input type="text" name="cant[0]" value="10" /></td>
<td><input type="text" name="prod[0]" value="ppp1" /></td>
<td><input type="text" name="precio[0]" value="100" /></td>
</tr>
<tr>
<td><input type="text" name="cant[1]" value="15" /></td>
<td><input type="text" name="prod[1]" value="ppp2" /></td>
<td><input type="text" name="precio[1]" value="110" /></td>
</tr>

asi?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por bathorz (33 intervenciones) el 07/02/2014 09:13:19
Prueba esto a ver si te sirve para seguir.
La base de la creación de filas la tomé de este mismo blog:
http://www.lawebdelprogramador.com/codigo/JQuery/2279-Anadir_y_eliminar_filas_de_una_tabla_con_jquery.html
y le adapté un poco el código.

* factura.html
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
<!doctype html>
<html>
   <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <title>Facturar</title>
      <link rel="stylesheet" type="text/css" href="base/css/facturas.css" />
      <script  type="text/javascript" src="base/js/jquery.min203.js"></script>
      <script  type="text/javascript" src="base/js/facturas.js"></script>
   </head>
   <body>
      <div class="jumbotron">
         <h2>Ingreso de cliente</h2>
         <form method="post" name="recibo" id="recibo">
            <input type="text" name="cedcliente" id="cedcliente" placeholder="Cedula del cliente" autofocus required />
            <input type="text" name="nomcliente" id="nomcliente" placeholder="Nombre del cliente" required />
            <input type="text" name="tlfcliente" id="tlfcliente" placeholder="Telefono del cliente" required />
 
            <input type="button" id="add" value="+" />
            <input type="button" id="del" value="--" />
            <table class="tabla" id="tabla">
               <tr>
                  <th>Tipo</th>
                  <th class="cant">Cant.</th>
                  <th class="prod">Descripcion</th>
                  <th class="precio">Monto</th>
                  <th class="eliminar">Est</th>
               </tr>
            </table>
            <input type="button" class="btn btn-lg btn-success" id="vender" value="Confirmar" />
         </form>
      </div>
      <!-- salida de prueba -->
      <div id="salida3"></div>
</html>

* procFactura.php
Recibe los datos del formulario, hace sus cálculos y devuelve una tabla.
Aquí podrías agregarle lo necesario para guardar en BBDD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$html = '';
$html .= '<table class="tFact">';
$html .= '<tr><td>Ced</td><td>' . $_POST['cedcliente'] . '</td></tr>';
$html .= '<tr><td>Nom</td><td>' . $_POST['nomcliente'] . '</td></tr>';
$html .= '<tr><td>Tlf</td><td>' . $_POST['tlfcliente'] . '</td></tr>';
 
$html .= '<tr><th>Tipo</th><th>Cant</th><th>Descripcion</th>'
   . '<th>Monto</th><th>Est</th><th>Parcial</th></tr>';
for ($i = 0; $i < count($_POST['tipo']); $i++) {
   $html .= '<td>' . $_POST['tipo'][$i] . '</td>';
   $html .= '<td>' . $_POST['cant'][$i] . '</td>';
   $html .= '<td>' . $_POST['descripcion'][$i] . '</td>';
   $html .= '<td>' . $_POST['monto'][$i] . '</td>';
   $html .= '<td>' . $_POST['est'][$i] . '</td>';
   $html .= '<td>' . ($_POST['cant'][$i]*$_POST['monto'][$i]) . '</td>';
   $total += $_POST['cant'][$i]*$_POST['monto'][$i];
   $html .= '</tr>';
}
$html .= '<tr><td>Total</td><td>' . $total . '</td></tr>';
$html .= '</table>';
echo $html;
?>

* facturas.js
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
$(document).ready(function() {
 
   /*********************************
    * Tabla
    * @type Array
    ********************************/
   var aNombres = new Array('tipo[]', 'cant[]', 'descripcion[]', 'monto[]', 'est[]','parcial[]');
   /**
    * Funcion para añadir una nueva fila en la tabla
    */
   $("#add").click(function() {
      // Obtenemos el numero de columnas (en este caso th) que tiene la primera fila
      // (tr) del id "tabla"
      var tds = $("#tabla tr:first th").length;
      // Obtenemos el total de filas (tr) del id "tabla"
      var nuevaFila = "<tr>";
      for (var i = 0; i < tds; i++) {
         // añadimos las filas
         if (i === 0) {
            nuevaFila += "<td>";
            nuevaFila += "<select name='" + aNombres[i] + "'>";
            nuevaFila += "<option value='camisa'>camisa</option>";
            nuevaFila += "<option value='pantalon'>pantalon</option>";
            nuevaFila += "<option value='otro'>otro</option>";
            nuevaFila += "</select>";
            nuevaFila += "</td>";
         } else {
            nuevaFila += "<td><input type='text' name='" + aNombres[i] + "' /></td>";
         }
      }
      nuevaFila += "</tr>";
      $("#tabla").append(nuevaFila);
   });
   /**
    * Funcion para eliminar la ultima fila de la tabla.
    * Si unicamente queda una fila, esta no sera eliminada
    */
   $("#del").click(function() {
      // Obtenemos el total de filas (tr) del id "tabla"
      var trs = $("#tabla tr").length;
      if (trs > 1) {
         // Eliminamos la ultima fila
         $("#tabla tr:last").remove();
      }
   });
 
   /*********************************
    * Ajax
    * @param {type} id
    * @param {type} url
    * @param {type} out
    * @returns {Boolean}
    ********************************/
   function consulta(id, url, out) {
      $.ajax({
         type: "POST",
         url: url,
         data: $(id).serialize(),
         success: function(data) {
            $(out).html(data);
         }
      });
      return false;
   }
   // factura
   $("#vender").click(function() {
      //var valor = $("input:radio[name=tipo]:checked").val();
      consulta("#recibo", "procFactura.php", "#salida3");
   });
   // busca cliente [sin uso]
   $("#bCliente").click(function() {
      consulta("#recibo", "buscarcliente.php", "#salida1");
   });
   // busca producto [sin uso]
   $("[name=tipo]").click(function() {
      var valor = $("input:radio[name=tipo]:checked").val();
      consulta("#recibo", "buscarproducto.php?tipo=" + valor, "#salida2");
   });
 
});

* facturas.css
1
2
3
4
#add, #del {color:#f00;}
.tabla{border: solid 1px #000;width: 670px}
.tFact{border: solid 1px #0f0;}
.tFact td{border: solid 1px #00f;}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por ghgh (1 intervención) el 23/09/2014 18:30:37
buenos dias seria bueno si nos pudieras mostrar la base de datos la cual utilizaste para este ejercicio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Edwin (4 intervenciones) el 08/03/2015 03:49:18
Ante todo muy buen aporte...Gracias

Ayuda

1
2
3
4
5
6
7
8
9
10
11
if (i === 0) {
    nuevaFila += "<td>";
    nuevaFila += "<select name='" + aNombres[i] + "'>";
    nuevaFila += "<option value='camisa'>camisa</option>";
    nuevaFila += "<option value='pantalon'>pantalon</option>";
    nuevaFila += "<option value='otro'>otro</option>";
    nuevaFila += "</select>";
    nuevaFila += "</td>";
} else {
   nuevaFila += "<td><input type='text' name='" + aNombres[i] + "' /></td>";
}

Una ayuda en campo nuevaFila += "<select name='" + aNombres[i] + "'>"; ya logre agregar un select desde una tabla de productos y si me funciona.

Pero me gustaria filtrar los productos que ya existen en la tabla de movimientos no se visualicen esto es solamente en el inventario inicial

1
2
3
4
5
6
7
8
9
10
$.get("../clases/ClassFunctionCargarItem.php",{ id_bodega: idbodega },
          function(data){
                if(data.length > 1){
                    for (var i=0; i<data.length; i++) {
                         nuevaFila += '<option value="' + data[i].id + '">' + data[i].text + '</option>';
                    }
          }else{
              mensajeok("Los Items ya Fueron Ingresado...");
          }
}, "json");

alert(nuevaFila); // aqui necesariamente tengo que hacer con el alert() para que se visualice en el select, que puede hacer para no hacerlo.

Archivo ClassFunctionCargarItem.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
	 $id_bodega = $_GET["id_bodega"];
	 $i = 0;
	 $datos=array($i=>array("id"=>0,"text"=>"Seleccione.."));
	 $i = 1;
	 $sql = 'SELECT TI.ID_ITEM as iditem, TI.DESCRIPCION_ITEM as descripcion FROM t_items AS TI WHERE TI.ESTADO = "Activado" AND TI.ID_ITEM NOT IN (SELECT TD.ID_ITEM FROM t_detalle_movimiento AS TD INNER JOIN t_movimiento AS TM ON (TD.ID_MOVIMIENTO = TM.ID_MOVIMIENTO) WHERE (TM.ID_BODEGA = "'.$id_bodega.'"))';
	 $rst = $con->Execute($sql);
	 while(!$rst->EOF){
		 $datos[$i]=array("id"=>$rst->fields['iditem'],"text"=>$rst->fields['descripcion']);
	     $rst->MoveNext();
	     $i++;
	 }
	 echo json_encode($datos);
?>

Muchas gracias por su ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por xve (5518 intervenciones) el 08/03/2015 19:02:58
Hola Edwin, estoy viendo tu código, y no se donde tienes el problema o que parte no te funciona... si nos puedes comentar con mas detalle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Edwin (4 intervenciones) el 09/03/2015 00:13:32
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
var aNombres = new Array('item[]', 'cant[]', 'precio[]');
// Obtenemos el numero de columnas (en este caso th) que tiene la primera fila // 
// (tr) del id "tabla"
var tds = $("#tabla tr:first .productos").length;
// Obtenemos el total de filas (tr) del id "tabla" 
var nuevaFila  = '';
//var nuevaFila  = "<tbody class ='nth-child'>";
nuevaFila += "<tr>";
for (var i = 0; i < tds; i++){
    // añadimos las filas 
    var idbodega  = $("#id_bodega").val();
    if (i === 0) {
        nuevaFila += "<td>" + e;
        nuevaFila += "<td>";
        nuevaFila += "<select item class='span10' name='" + aNombres[i] + "'>";
        $.get("../clases/ClassFunctionCargarItem.php",{ id_bodega: idbodega },
        function(data){
            if(data.length > 1){
            for (var i=0; i<data.length; i++) {
                nuevaFila += '<option value="' + data[i].id + '">' + data[i].text + '</option>';
            }
            }else{
                mensajeok("Los Items ya Fueron Ingresado...");
            }
        }, "json");
        /*
        * Para que se pueda visualizar los campos en el select tengo que visualizar
        * con el alert(nuevaFila);
        * ahi se cargan los datos, si no, no funciona
        * como puedo hacer para no utilizar sin el alert()
        */
        alert(nuevaFila);
        nuevaFila += "</select>";
        nuevaFila += "</td>";
        e = e + i;
    }else{
        if (i == 1){
            nuevaFila += "<td class='derecha'><input type='text' class='cantidad span9 input-small text-right' name='" + aNombres[i] + "'></input></td>";
        }else{
            if (i == 2){
            nuevaFila += "<td class='derecha'><input type='text' class='precio span10 input-small text-right' name='" + aNombres[i] + "'></input></td>";
            /* 
            nuevaFila += "<td class='subtotal derecha input-small'></td>"
            nuevaFila += "<td class='siva derecha input-small'></td>" 
            */
            nuevaFila += "<td class='totalp derecha input-small'></td>";
            nuevaFila += "<td class='centro'><a class='eliminar icon-remove-sign' href='#' title='Eliminar'></a></td>";
            }
        }
    }
}
    alert(nuevaFila);
nuevaFila += "</tr>";
 
$("#tabla").append(nuevaFila);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Edwin Pacheco (4 intervenciones) el 19/03/2015 03:45:21
Por favor en la parte que obtengo la informacion del archivo ClassFunctionCargarItem.php y cargo la informacion en el select
nuevaFila += "<select item class='span10' name='" + aNombres[i] + "'>";
$.get("../clases/ClassFunctionCargarItem.php",{ id_bodega: idbodega }, function(data){
if(data.length > 1){
for (var i=0; i<data.length; i++) {
nuevaFila += '<option value="' + data[i].id + '">' + data[i].text + '</option>';
}
}else{
mensajeok("Los Items ya Fueron Ingresado..."); } }, "json");
/* *
Para que se pueda visualizar los campos en el select tengo que visualizar
* con el alert(nuevaFila);
* ahi se cargan los datos, si no, no funciona
* como puedo hacer para no utilizar sin el alert()
*/
alert(nuevaFila); // tengo que hacer esto para que se carge el select
nuevaFila += "</select>";
nuevaFila += "</td>";

Que alternativa puedo utilizar

Muchas gracias por la informacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Martin

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Martin (2 intervenciones) el 26/03/2015 15:38:18
facturacion

Hola yo tengo este sistema de facturación funciona 100%, yo no se Ajax se un poco de PHP.

Si gusta me envías un correo y te envío todo el script cementado.

Este funciona así: digitas el código del articulo y presionas enter, y el script te trae todos los datos necesarios para facturar, del articulo, o con la tecla F8 da la opción de buscar y escoger el articulo con un doble click.

Internamente trabaja con una tabla temporal que se crea con el nombre del equipo, si no existe, y los ítems los despliega mediante un repetir región.

Los demás cálculos son realizados sobre la tabla.

Si le interesa escríbeme a: tecnodatacompu@hotmail.com y le puedo indicar como probarlo en tiempo real.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por asael (1 intervención) el 08/10/2015 19:10:34
Saludos..
Me puedes compartir el codigo de tu factura..
saludos..

mi email.
univoasael@gmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por jose adreo77@gmail.com (1 intervención) el 17/11/2015 23:33:24
Hola disculpa la molestia me podrías compartir el script de tu sistema de facturación gracias, mi correo es adreo77@gmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Sam (1 intervención) el 19/11/2015 08:40:19
Yo también estaría interesado en este código para hacer facturas en php. ¿Cómo lo podría recibir o probar? Mi email es jordex22@gmail.com

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Leonel (1 intervención) el 15/01/2016 21:41:35
Agradezco, mucho tu apoyo con codigo fuente.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Edwin (4 intervenciones) el 30/01/2016 18:25:44
Hola como les va

Por fin pude resolver el problema de la facturacion o para un sistema de contabilidad cuando se requiere realizar un maestro detalle
con multiples regristros en el detalle y que se puedan ir sumando y calculando automaticamente.

Les dejo el link para que puedan ver como realizardo, esta con laravel lo unico importante es que se puede utilizar el codigo que esta en HTML, CSS, JQuery, MYSQL y PHP, les dejo el link para que pueden descargar el video, no realice yo el video simplemente me dedique a buscar ya que lo que tenia no me fue de utilidad.


Si no cualquier cosa me escriben y en transcribir no me demore mucho

y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por erickmpos erickmpos@gmail.com (4 intervenciones) el 28/04/2016 05:39:20
Buenas, al final como te fue con el programa, yo estoy haciendo algo similar a los programas que tienen en los supermercados, que en el momento en que pasan un producto por un lector de codigo de barras, este automaticamente me agrega la linea con la descripcion del producto y sus precios. Lo unico es q no logro establer que si llamo a un producto, este me permanezca en la linea para luego salvarlo. Mi correo es: erickmpos@gmail.com por si tienes alguna idea. Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Richard Castro (1 intervención) el 04/04/2016 20:42:56
Amigo excelente aporte podria compartirlo y enviarlo a mi correo: richardcastro82@gmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda Ajax y PHP para realizar factura de tabla dinamica

Publicado por Jose Willibaldo (1 intervención) el 30/11/2016 18:23:33
Hola.
estoy en un proyecto y me gustaría recibir el código de tu factura como ejemplo como podría hacer?
mi correo es jowi.glvn@gmail.com

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar