JavaScript - Modificar DOM - Ajax

 
Vista:
sin imagen de perfil

Modificar DOM - Ajax

Publicado por Kevin (6 intervenciones) el 18/07/2017 03:20:50
Buen dia amigos,

Les comento, tengo un problema y se que ustedes con su gran experiencia podrán ayudarme... Estoy haciendo un carrito de compras, agrego algun producto desde la seccion de productos y no hay problema, el problema existe cuando voy a carrito en este caso lo llame "shop.php", tengo en cada producto un par de botones que sirven para agregar mas productos o para tener menos o simplemente al llegar a cantidad 0 que se eliminen, sin embargo no encuentro la logica para que funcione, creo que es porque no estoy modificando el DOM como deberia de ser, sin embargo no se como editar un "onclick="javascript:MiFuncion(Parametro1,Parametro2)" en el dom, creo que la solucion a mi problema seria que al ejecutar la fucion con exito, la misma se autoedite uno de los parametros...

Les dejo abajo la informacion de mi codigo en este caso deso editar el parametro "actual", pero no se como hacerlo.

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
<div class="container">
 
<!-- ********************************************************************** HEADER **********************************************************************  -->
 
<section class="content">
<?php
 
if (isset($_GET['error'])) {
	if ($_GET['error']=='AccesoDenagado') {
	    echo'<div class="col-md-12">
	          <div class="box box-danger box-solid">
	            <div class="box-header with-border">
	              <h3 class="box-title">Error al registrarte</h3>
	              <div class="box-tools pull-right">
	                <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button>
	              </div>
	            </div>
	            <div class="box-body">
	              No hemos podido registrarte.
	            </div>
	          </div>
	        </div>';
	}
}
 
 
echo '
<div class="col-xs-12" name="zonaCarrito">';
 
$Productos = $DB_con->prepare('SELECT * FROM carrito WHERE clientID = :ucliendID ORDER BY cantidad ASC');
$Productos->execute(array(':ucliendID'=>$ID));
 
echo '
<div class="col-xs-9">
  <div class="box box-success">
    <div class="box-header">
      <h3 class="box-title">Carrito de compras</h3>
    </div>
    <div class="box-body table-responsive no-padding">
      <table class="table table-hover">
        <tr>
          <th>Producto</th>
          <th>Producto</th>
          <th>Tienda</th>
          <th>Precio</th>
          <th>¿Es una oferta?</th>
          <th>Cantidad</th>
        </tr>
        ';
$Total_Pago = 0;
while ($DatosProd = $Productos->fetch(PDO::FETCH_ASSOC)) {
 
	$Detalles = $DB_con->prepare('SELECT * FROM productos WHERE idproducto = :uprodID');
	$Detalles->execute(array(':uprodID'=>$DatosProd['productID']));
	$LosProductos = $Detalles->fetch(PDO::FETCH_ASSOC);
 
	$Tienda = $DB_con->prepare('SELECT * FROM tiendas WHERE userID = :uTienda');
	$Tienda->execute(array(':uTienda'=>$LosProductos['idtienda']));
	$InfoTienda = $Tienda->fetch(PDO::FETCH_ASSOC);
 
 
	$hoy= mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
	$hoy = date("m.d.y");
 
	$DiasCreado = dateDiff($LosProductos['creado'], $hoy);
 
	if ($DiasCreado <=10) {
		$Prod_Nuevo = '
			<div class="ribbon gift">
				<div class="theribbon">NUEVO</div>
				<div class="ribbon-background"></div>
			</div>
				';
	}else{
		$Prod_Nuevo = "";
	}
 
	if ($LosProductos['oferta'] == "Sí" ) {
		$Prod_Oferta = 'Oferta';
	}else{
		$Prod_Oferta = "";
	}
 
 
	$Entero = substr($LosProductos['precio'], 0, -3);
	$Centavos = substr($LosProductos['precio'], -2);
 
	$Precio = substr($LosProductos['precio'], 0, -2);
	$Punto = substr($Precio, -1);
 
	if ($Punto == ".") {
		$Centavos = substr($LosProductos['precio'], -2);
	}else{
		$Entero = $LosProductos['precio'];
		$Centavos = "00";
	}
 
 
	$Prod_Precio = '
			<div class="ribbon new">
				<div class="theribbon"> '.$Entero.'.<sup>'.$Centavos.'</sup></div>
				<div class="ribbon-background"></div>
			</div>
	';
 
$Total_Pago = $Total_Pago + (($Entero.'.'.$Centavos)*$DatosProd['cantidad']);
echo'

        <tr id="Linea'.$LosProductos['idproducto'].'">
          <td>'.$LosProductos['nombreproducto'].'</td>
          <td><div class="user-block"><img class="img-circle" src="../Administration/user_images/'.$LosProductos['imagenproducto'].'" alt="'.$LosProductos['nombreproducto'].'"></div></td>
          <td><div class="user-block"><img class="img-circle" src="../Administration/logos/'.$InfoTienda['logo'].'" alt="User Image"></div></td>
          <td> '.$Entero.'.<sup>'.$Centavos.'</sup></td>
          <td><span class="label label-success">'.$Prod_Oferta.'</span></td>
          <td>
                <ul class="pagination pagination-sm no-margin">
                  <li><a class="fa fa-minus" onclick="javascript:EnviarDatos('.$LosProductos['idproducto'].','.$ID.',-1,'.$DatosProd['cantidad'].')"></a></li>
                  <li><a id="Prod'.$LosProductos['idproducto'].'">'.$DatosProd['cantidad'].'</a></li>
                  <li><a class="fa fa-plus" onclick="javascript:EnviarDatos('.$LosProductos['idproducto'].','.$ID,',1,'.$DatosProd['cantidad'].')"></a></li>
                </ul>
          </td>
        </tr>             
	';
 
}
 
echo '
      </table>
    </div>
  </div>
 </div>    

<div class="col-md-3">
  <div class="box box-success">
    <div class="box-header with-border">
      <h3 class="box-title">Monto a cancelar</h3>
    </div>
    <div class="box-body">Costo de productos <b> 
      '.$Total_Pago.'</b>
      </br>
      Costo de envio <b> 25.00</b>
      <hr>
      Total a cancelar <b> '.($Total_Pago + 25).'</b>
    </div>
  </div>
</div>
</div>
';
 
 
 
 
 
 
 
 
 
 
 
?>
 
</section>
 
<!-- ************************************************************************* HEADER ************************************************************************  -->
    </div>
  </div>
  <footer class="main-footer">
    <div class="container">
      <strong><a href="index.php">TEST</a></strong> TEST
      reservados.
    </div>
  </footer>
</div>
 
<script src="plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="plugins/slimScroll/jquery.slimscroll.min.js"></script>
<script src="plugins/fastclick/fastclick.js"></script>
<script src="dist/js/app.min.js"></script>
<script src="dist/js/demo.js"></script>
 
<script type="text/javascript">
function EnviarDatos(productID,clientID,cantidad,actual){
if (clientID == 0) {
	sweetAlert("Perdón...", "Debes registrarte para poder tener un carrito y agregar productos.", "error");
}
 
	$.ajax({
		type: 'POST',
		url: 'phpfunctions/AjaxEditCart.php',
		data: ('productID='+productID+'&clientID='+clientID+'&cantidad='+cantidad),
		success:function(respuesta){
			var diferencia = actual+cantidad;
			if (diferencia==0) {
				$('#Linea'+productID).html('');
			}
				$('#MyCart').html(respuesta);
				$('#Prod'+productID).html(diferencia);
		}
	})
}
</script>
 
</body>
</html>

El archivo de PHP da como resultado el total de todos los productos agregados al carrito:

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
<?php
 
if (isset($_POST['clientID'])) {
	require_once 'dbconfig.php';
 
	$productID = $_POST['productID'];
	$clientID = $_POST['clientID'];
	$cantidad = $_POST['cantidad'];
 
	//Verificando existencia del producto en el carrito
	$Carrito = $DB_con->prepare('SELECT * FROM carrito WHERE productID=:upID AND clientID=:ucID');
	$Carrito->execute(array(':upID'=>$productID,':ucID'=>$clientID));
	$Carrito_Producto = $Carrito->fetch( PDO::FETCH_ASSOC );
	$Cantidad_Antigua = $Carrito_Producto['cantidad'];
 
	if ($cantidad == -1 ) {
		if ($Cantidad_Antigua == 1) {
			$Cart_delete = $DB_con->prepare('DELETE FROM carrito WHERE clientID=:uclientID AND productID=:uproductID');
			$Cart_delete->bindParam(':uclientID',$clientID);
			$Cart_delete->bindParam(':uproductID',$productID);
			$Cart_delete->execute();
		}else{
			$cantidad = $Cantidad_Antigua -1;
			$stmtcrud = $DB_con->prepare('UPDATE carrito SET cantidad=:ucantidad WHERE productID=:upID AND clientID=:ucID');
			$stmtcrud->bindParam(':upID',$productID);
			$stmtcrud->bindParam(':ucID',$clientID);
			$stmtcrud->bindParam(':ucantidad',$cantidad);
			$stmtcrud->execute();
		}
 
	}else{
		$cantidad = $Cantidad_Antigua +1;
		$stmtcrud = $DB_con->prepare('UPDATE carrito SET cantidad=:ucantidad WHERE productID=:upID AND clientID=:ucID');
		$stmtcrud->bindParam(':upID',$productID);
		$stmtcrud->bindParam(':ucID',$clientID);
		$stmtcrud->bindParam(':ucantidad',$cantidad);
		$stmtcrud->execute();
	}
 
 
	$CheckMyCart = $DB_con->prepare('SELECT * FROM carrito WHERE clientID=:ucID');
	$CheckMyCart->execute(array(':ucID'=>$clientID));
	$CartElements = 0;
 
	while ($CartElement = $CheckMyCart->fetch( PDO::FETCH_ASSOC )) {
		$CartElements = $CartElements + $CartElement['cantidad'];
	}
 
	echo $CartElements;
 
 
}else{
	echo 0;
}
?>


Muchas gracias por su tiempo y ayuda!!
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