PHP - problema con array

   
Vista:

problema con array

Publicado por DXDXDX (42 intervenciones) el 18/08/2015 21:09:22
hola. me podrian ayudar a solucionar este problema, declaro un array, pero no me muestra nada..

este es mi codigo..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
	$sql="SELECT * FROM articulos ORDER BY articulo";
	$result=mysql_query($sql);
 
	while($row=mysql_fetch_assoc($result)){
		?>
		<script type="text/javascript">
 
                Aqui el problema como lo tengo que declarar..?????
 
		 var precio1[<?php echo($row["id"]); ?>]=<?php echo($row["preuno"]); ?>;
		 var precio2[<?php echo($row["id"]); ?>]=<?php echo($row["predos"]); ?>;
		 var precio3[<?php echo($row["id"]); ?>]=<?php echo($row["pretres"]); ?>;
		 var precio4[<?php echo($row["id"]); ?>]=<?php echo($row["precuatro"]); ?>;
		 </script>
 
		<tr>
		<td><select name="cant-<?php echo($row["id"]); ?>" id="cant-<?php echo($row["id"]); ?>" onChange="actualizaPrecios(<?php echo($row["id"]); ?>);">
		<?php for($a=1;$a<=50;$a++){
	?>
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
Imágen de perfil de xve

problema con array

Publicado por xve (5516 intervenciones) el 19/08/2015 09:30:20
Has definido el objeto diccionario o hashtable? algo así:

1
2
3
var precio1={};
precio1["1"]=100;
precio1["2"]=200;
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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 17:43:37
Hola. gracias por el comentario pero esos precios los tengo que sacar de una base de datos en la cual tengo esos campos.

primero las declaro a si

1
2
3
4
5
6
<script type="text/javascript">
	var precio1;
	var precio2;
	var precio3;
	var precio4;
</script>

y despues hago la consulta a la base de datos.

1
2
3
4
5
6
7
8
9
10
11
12
$sql="SELECT * FROM articulos ORDER BY articulo";
$result=mysql_query($sql);
 
while($row=mysql_fetch_assoc($result)){
	?>
	<script type="text/javascript">
			var precio1[<?php echo($row["id"]); ?>]=<?php echo($row["preuno"]); ?>;
			var precio2[<?php echo($row["id"]); ?>]=<?php echo($row["predos"]); ?>;
			var precio3[<?php echo($row["id"]); ?>]=<?php echo($row["pretres"]); ?>;
			var precio4[<?php echo($row["id"]); ?>]=<?php echo($row["precuatro"]); ?>;
 
	</script>

pero no me muestra nada..! nose si las estoy declarando bien...
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 Vainas

problema con array

Publicado por Vainas (254 intervenciones) el 19/08/2015 18:12:20
Buenas:

No es necesario que las declares primero a menos que luego le estes dando valor dentro de una funcion.

Lo mejor que puedes hacer es mirar la consola de chrome y ver como el navegador recibe los datos para ver si estan bien.

Si nos pudieras mostrar la parte del script que se carga en el navegado... es que asi podriamos ver que valores esta tomando las variables en js.

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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 18:43:48
hola nose como subir la imagen pero esto es lo que me muestra..!

Uncaught SyntaxError: Unexpected token [
a.php:88 Uncaught SyntaxError: Unexpected token [
a.php:156 Uncaught SyntaxError: Unexpected token [
a.php:224 Uncaught SyntaxError: Unexpected token [
a.php:292 Uncaught SyntaxError: Unexpected token [
a.php:360 Uncaught SyntaxError: Unexpected token [
a.php:428 Uncaught SyntaxError: Unexpected token [
a.php:496 Uncaught SyntaxError: Unexpected token [
a.php:564 Uncaught SyntaxError: Unexpected token [
a.php:632 Uncaught SyntaxError: Unexpected token [
a.php:712 Uncaught TypeError: Cannot read property '1' of undefined


y si despues las meto a una funcion..!

$sql="SELECT * FROM articulos ORDER BY articulo";
$result=mysql_query($sql);

while($row=mysql_fetch_assoc($result)){

?>

<script type="text/javascript">
var precio1[<?php echo($row["id"]); ?>]=<?php echo($row["preuno"]); ?>;
var precio2[<?php echo($row["id"]); ?>]=<?php echo($row["predos"]); ?>;
var precio3[<?php echo($row["id"]); ?>]=<?php echo($row["pretres"]); ?>;
var precio4[<?php echo($row["id"]); ?>]=<?php echo($row["precuatro"]); ?>;
</script>

<script type="text/javascript">

function actualizaPrecios(identificador){
nomvar="cant-"+identificador;
alert(nomvar);
campo=document.getElementById(nomvar);
alert(campo);
cantidad=campo.options[campo.selectedIndex].value;
alert(cantidad);

if(cantidad<=5){
precio=precio1[identificador];
}

preciounitario=precio;
total=preciounitario * cantidad;

}
</script>
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 Vainas

problema con array

Publicado por Vainas (254 intervenciones) el 19/08/2015 19:09:02
Buenas de nuevo:

has una cosa intenta dejar aqui el codigo completo que te desvuelve el chrome. abres el chrome y entra en tu pagina, haces click con el boton derecho y Pulsas donde pone inspeccionar elemento. Copia todo el html y dejalo aqui (borra lo que creas que no deberia verse en el foro claro).

la variable $row["id"] es un numero o es texto?

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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 19:12:47
la variable $row["id"] es un numero..!

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
<script type="text/javascript">
	var precio1;
 
</script>
 
<form method="post" action="confirmapedido.php">
	<table border="1" align="center">
	<tr><!--Titulos de la tabla-->
		<td>Cantidad</td>
		<td>Producto</td>
		<td>Precio Unitario</td>
		<td>Total</td>
	</tr>
 
 
		<script type="text/javascript">
			 var precio1[1]=1700;
			 var precio2[1]=1600;
			 var precio3[1]=1500;
			 var precio4[1]=1450;
		</script>
 
		<tr>
		<td>
			<select name="cant-1" id="cant-1" onChange="actualizaPrecios(1);">
				<option value="0">0</option>
				<option value="1">1</option>
				<option value="2">2</option>
				<option value="3">3</option>
				<option value="4">4</option>
				<option value="5">5</option>
				<option value="6">6</option>
				<option value="7">7</option>
				<option value="8">8</option>
				<option value="9">9</option>
				<option value="10">10</option>
				<option value="11">11</option>
				<option value="12">12</option>
				<option value="13">13</option>
				<option value="14">14</option>
				<option value="15">15</option>
				<option value="16">16</option>
				<option value="17">17</option>
				<option value="18">18</option>
				<option value="19">19</option>
				<option value="20">20</option>
				<option value="21">21</option>
				<option value="22">22</option>
				<option value="23">23</option>
				<option value="24">24</option>
				<option value="25">25</option>
				<option value="26">26</option>
				<option value="27">27</option>
				<option value="28">28</option>
				<option value="29">29</option>
				<option value="30">30</option>
				<option value="31">31</option>
				<option value="32">32</option>
				<option value="33">33</option>
				<option value="34">34</option>
				<option value="35">35</option>
				<option value="36">36</option>
				<option value="37">37</option>
				<option value="38">38</option>
				<option value="39">39</option>
				<option value="40">40</option>
				<option value="41">41</option>
				<option value="42">42</option>
				<option value="43">43</option>
				<option value="44">44</option>
				<option value="45">45</option>
				<option value="46">46</option>
				<option value="47">47</option>
				<option value="48">48</option>
				<option value="49">49</option>
				<option value="50">50</option>
					</select>
		</td>
 
			</table>
</form>
 
<script type="text/javascript">
 
	function actualizaPrecios(identificador){
		nomvar="cant-"+identificador;
		alert(nomvar);
		campo=document.getElementById(nomvar);
		alert(campo);
		cantidad=campo.options[campo.selectedIndex].value;
		alert(cantidad);
 
		if(cantidad<=5){
			precio=precio1[identificador];
			}
 
 
		preciounitario=precio;
		total=preciounitario * cantidad;
		subtotal=document.getElementById('total-'+identificador);
		subtotal.value=total;
		pu=document.getElementById('pu-'+identificador);
		pu.value=preciounitario;
	}
</script>
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 Vainas

problema con array

Publicado por Vainas (254 intervenciones) el 19/08/2015 19:57:08
Dentro del primer script define los arrays asi:

1
2
3
4
var precio1 = [];
var precio2 = [];
var precio3 = [];
var precio4 = [];

Dentro de la function define precio asi:

1
var precio = 0;

Ya nos diras que mas te sale. Saludos.

Actualizo: En el script donde das los valores a los arrays quitale la palabra var
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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 20:03:23
Me da como resultado el "0"..

yo intento esto..!

var precio1[<?php echo($row["id"]); ?>]=<?php echo($row["preuno"]); ?>;
var precio2[<?php echo($row["id"]); ?>]=<?php echo($row["predos"]); ?>;
var precio3[<?php echo($row["id"]); ?>]=<?php echo($row["pretres"]); ?>;
var precio4[<?php echo($row["id"]); ?>]=<?php echo($row["precuatro"]); ?>;

por que tengo una tabla a si
id|articulo|preuno|predos|pretres|precuatro
1|aaaaaa|1600 |1500 |1400 |1300

es hay donde entra el if
if(cantidad <5)
imprime una cantidad

por eso son 4 cantidades cada uno varia el rango que seleccionen..
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 Vainas

problema con array

Publicado por Vainas (254 intervenciones) el 19/08/2015 20:39:37
Si claro que sale 0

dentro de la funcion precio = 0;

si cantidad es menor o igual que 5 te dara otro precio. Por eso sale 0. sino quieres que precio sea 0 al principio dale un valor para rangos mayores a 5.

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
Imágen de perfil de xve

problema con array

Publicado por xve (5516 intervenciones) el 19/08/2015 20:22:46
Hola Ivan, no has visto lo que te puse? hazlo como te lo puse y te funcionara!!!
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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 20:31:57
ya lo hice pero ni aun a si me funciona..!!

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
var precio1={};
	precio1["1"]=<?php echo($row["preuno"]); ?>;
	precio1["2"]=<?php echo($row["predos"]); ?>;
	precio1["3"]=<?php echo($row["pretres"]); ?>;
	precio1["4"]=<?php echo($row["precuatro"]); ?>;
 
function actualizaPrecios(identificador){
	nomvar="cant-"+identificador;
	alert(nomvar);
	campo=document.getElementById(nomvar);
	alert(campo);
	cantidad=campo.options[campo.selectedIndex].value;
	alert(cantidad);
 
	if(cantidad<=5){
		precio=precio1[identificador];
		}
 
 
	preciounitario=precio;
	total=preciounitario * cantidad;
	subtotal=document.getElementById('total-'+identificador);
	subtotal.value=total;
	pu=document.getElementById('pu-'+identificador);
	pu.value=preciounitario;
}
</script>

me trae como resultado el ultimo de la tabla de mysql--- no el correspondiente al id..

ayuda..!! :( ya no se por donde mas-- o a que otra forma lo puedo modificar..
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 Vainas

problema con array

Publicado por Vainas (254 intervenciones) el 19/08/2015 20:49:37
Aqui he dejado una prueba:

http://jsfiddle.net/vj88ug5t/1/

Yo mas alla de lo que veo no entiendo ya el problema. Si has puesto un if con cantidad sea menor que 5 digo yo que para mayor tendras que definir la variable precio con algun valor.

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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 20:56:54
si, a si como lo pones es como me deberia de funcionar--!! el problema, los precios me los tengo que traer de la base de datos..!!

cada articulo tiene su propio precio todos varian.!
como me lo muestras le declaras el valor hay mismo-!

como puedo mostrar el precio.. de cada articulo..!
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 Vainas

problema con array

Publicado por Vainas (254 intervenciones) el 19/08/2015 21:43:06
pues con el while que has puesto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">
precio1 = [];
precio2 = [];
precio3 = [];
precio4 = [];
 
<?php
while($row=mysql_fetch_assoc($result)){
?>
 
precio1[<?php echo $row["id"]; ?>]=<?php echo $row["preuno"]; ?>;
precio2[<?php echo $row["id"]; ?>]=<?php echo $row["predos"]; ?>;
precio3[<?php echo $row["id"]; ?>]=<?php echo $row["pretres"]; ?>;
precio4[<?php echo $row["id"]; ?>]=<?php echo $row["precuatro"]; ?>;
 
 
<?php } ?>
 
</script>

se supone que esto se rellena como te enseño yo en el enlace:

1
2
3
4
5
6
7
8
9
precio1[1]=1700;
precio2[1]=1600;
precio3[1]=1500;
precio4[1]=1450;
 
precio1[2]=1456;
precio2[2]=1999;
precio3[2]=1321;
precio4[2]=1789;

siempre y cuando $row["id"] sea un numero que va de 1 a x y $row["pre###"] sea otro numero.

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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 21:59:36
PERDON POR MI INCONSISTENCIA, A SI COMO LO PONES SE SUPONE QUE YA ME TENDRIA QUE DAR EL RESULTADO..!!

ESTE ES MI CODIGO QUE TENIA-!

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
<?php
	$sql="SELECT * FROM articulos ORDER BY articulo";
	$result=mysql_query($sql);
 
while($row=mysql_fetch_assoc($result)){
	?>
	<script type="text/javascript">
 
		var precio1 = [];
		var precio2 = [];
		var precio3 = [];
		var precio4 = [];
	</script>
 
	<tr>
	<td>
		<select name="cant-<?php echo($row["id"]); ?>" id="cant-<?php echo($row["id"]); ?>" onChange="actualizaPrecios(<?php echo($row["id"]); ?>);">
	<?php for($a=0;$a<=50;$a++)
		{
	?>
	<option value="<?php echo($a); ?>"><?php echo($a); ?></option>
	<?php
		}
	?>
		</select>
	</td>
	<td><?php echo($row["articulo"]); ?></td>
	<td><input type="text" name="pu-<?php echo($row["id"]); ?>" id="pu-<?php echo($row["id"]); ?>" readonly></td>
	<td><input type="text" name="total-<?php echo($row["id"]); ?>" id="total-<?php echo($row["id"]); ?>" readonly></td>
	</tr>
	<?php
}
?>

ESTE ES COMO LO SUPLI, CON LO QUE ME PASASTE.!

PERO ME MARCA ERROR EN EL JAVASCRIPT.

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
<?php
	$sql="SELECT * FROM articulos ORDER BY articulo";
	$result=mysql_query($sql);
 
<script type="text/javascript">
precio1 = [];
precio2 = [];
precio3 = [];
precio4 = [];
 
<?php
while($row=mysql_fetch_assoc($result)){
?>
 
precio1[<?php echo $row["id"]; ?>]=<?php echo $row["preuno"]; ?>;
precio2[<?php echo $row["id"]; ?>]=<?php echo $row["predos"]; ?>;
precio3[<?php echo $row["id"]; ?>]=<?php echo $row["pretres"]; ?>;
precio4[<?php echo $row["id"]; ?>]=<?php echo $row["precuatro"]; ?>;
 
 
<?php } ?>
 
</script>
 
	<tr>
	<td>
		<select name="cant-<?php echo($row["id"]); ?>" id="cant-<?php echo($row["id"]); ?>" onChange="actualizaPrecios(<?php echo($row["id"]); ?>);">
	<?php for($a=0;$a<=50;$a++)
		{
	?>
	<option value="<?php echo($a); ?>"><?php echo($a); ?></option>
	<?php
		}
	?>
		</select>
	</td>
	<td><?php echo($row["articulo"]); ?></td>
	<td><input type="text" name="pu-<?php echo($row["id"]); ?>" id="pu-<?php echo($row["id"]); ?>" readonly></td>
	<td><input type="text" name="total-<?php echo($row["id"]); ?>" id="total-<?php echo($row["id"]); ?>" readonly></td>
	</tr>
	<?php
}
?>

ESTO ME MUESTRA..!

Parse error: syntax error, unexpected '<' in C:\wamp\www\sistema2\a.php on line 18

ESE ERROR ES DONDE EMPIEZA MI JAVASCRIPT.
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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 22:48:20
Solucuinado..!!

Muchas gracias a todos por tomarse el tiempo..!

y mil disculpas, error de sintaxis..!
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

problema con array

Publicado por xve (5516 intervenciones) el 19/08/2015 23:21:49
Estaría bien que después de todo mostraras como lo has solucionado!!!
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

problema con array

Publicado por ivan (42 intervenciones) el 19/08/2015 23:27:12
Solucion..!
Este es el script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">
			var precio1 = [];
			var precio2 = [];
			var precio3 = [];
			var precio4 = [];
 
		<?php
			$sql="SELECT * FROM articulos ORDER BY articulo";
			$result=mysql_query($sql);
			while($row=mysql_fetch_assoc($result)){
		?>
		 	precio1[<?php echo $row["id"]; ?>]=<?php echo $row["preuno"]; ?>;
			precio2[<?php echo $row["id"]; ?>]=<?php echo $row["predos"]; ?>;
			precio3[<?php echo $row["id"]; ?>]=<?php echo $row["pretres"]; ?>;
			precio4[<?php echo $row["id"]; ?>]=<?php echo $row["precuatro"]; ?>;
		<?php } ?>
</script>

y en seguida pongo otra vez el while..!
para que sea el ciclo completo.

1
2
3
4
5
6
<?php
	$result=mysql_query($sql);
	while($row=mysql_fetch_assoc($result)){
?>
 
<?php }?>

y la funcion de suma es a si..!

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
<script type="text/javascript">
	function actualizaPrecios(identificador){
		nomvar="cant-"+identificador;
		campo=document.getElementById(nomvar);
		cantidad=campo.options[campo.selectedIndex].value;
 
		if(cantidad<=5){
			precio=precio1[identificador];
		}
		else if(cantidad<=10){
			precio=precio2[identificador];
		}
		else if(cantidad<=25){
			precio=precio3[identificador];
		}
		else if(cantidad<=50){
			precio=precio4[identificador];
		}
 
		preciounitario=precio;
		total=preciounitario * cantidad;
               subtotal=document.getElementById('total-'+identificador);
		subtotal.value=total;
		pu=document.getElementById('pu-'+identificador);
		pu.value=preciounitario;
	}
</script>

Saludos y gracias por todo..!

si es necesario. que suba la bd para resolver mas problemas..!
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

problema con array

Publicado por xve (5516 intervenciones) el 20/08/2015 08:43:00
Gracias por compartirlo Ivan!!!
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 Vainas

problema con array

Publicado por Vainas (254 intervenciones) el 20/08/2015 10:21:29
Bien al fin!!!

Menos mal que lo has resuelto. 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