Tienes algunos problemas tanto con PHP, como con HTML y Javascript
:
Código PHP:
Ver original<?php
// Esto esta mal:
echo '<div id = '.$codigo.$lote.' style="display:none;">';
// Usando un poco mejor las comillas seria:
echo "<div id=\"$codigo$lote\" style=\"display:none;\">";
// Esto tambien esta mal:
echo " Precio: ";
echo '<label><input type="text" name="my-item-price" id ="idp.$codigo.$lote" value="" size="3" onChange="valorMayorQueCero(this)"; /></label>';
// Mas o menos deberia ser:
$precioid = "idp$codigo$value"; // Vas a necesitar este varias veces
echo "<label for=\"$precioid\">Precio:</label>"; // Las etiquetas son asignadas a cada campo
echo "<input type=\"text\" name=\"my-item-price\" id =\"$precioid\" value=\"\" size=\"3\" onchange=\"valorMayorQueCero(this);\" />";
// Mucho mejor si lo haces asi:
$precioid = "idp$codigo$value";
?>
<label for="<?php echo $precioid; ?>">Precio:</label>
<input type="text" name="my-item-price" id="<?php echo $precioid; ?>" value="" size="3" onchange="valorMayorQueCero(this);" />
Despues en tu js esta mal usar $ en las variables, porque ya las estas recibiendo como parametro de la funcion:
Código Javascript
:
Ver original// Esto esta mal:
prm4 = document.getElementById("idc.$codigo.$lote").value ; //cantidad
prm5 = document.getElementById("idp.$codigo.$lote").value ; //precio
// Debiendo ser:
prm4 = document.getElementById("idc" + codigo + lote).value; //cantidad
prm5 = document.getElementById("idp" + codigo + lote).value; //precio
Por otra parte, el input
my-item-qty tiene una id
id-my-item-qty, nada que ver con codigo y lote.
Vas a mostrar solamente un producto por pagina? si es asi, te estas complicando la vida, solo crea campos ocultos (hidden) para almacenar codigo y lote, con su respectiva id, quedando los campos asi:
* nombre/ID - tipo
- codigo: oculto
- lote: oculto
- precio: texto
- cantidad: texto
Si vas a mostrar mas de un producto por pagina, entonces el problema sera que estas repitiendo el atributo name para precio y cantidad, tal vez te cause algunos problemas.