Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / Problemas con Array usando Javascript + Php +MySQL
1 respuestas recibidas | 218 visitas | Categoría PHP

Problemas con Array usando Javascript + Php +MySQL

Avatar de jcampos
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 11 posts)

#0 Offline jcampos Usuario 29 mar 08 (19:44)  
Hola.. quisiera ver si me pueden ayudar con lo siguiente:

tengo un formulario que genero mediante php pues este depende de los datos que tengo en mi BD, aquí tengo 2 campos que son para los que uso dichas funciones...el primer campo me debe de dar un porcentaje y el segundo si se aplica o no dicho descuento, el primero es un textbox y el segundo un checkbox, y de hecho me funciona siempre y cuando el nombre de los elementos en el form sean porcentaje y autoriza... pero para yo guardarlo en la BD uso a travez de php porcentaje[] y autoriza[], la funcion en javascript es:

Código Javascript

<script language="javascript">
function todos(form, cantidad)
{
if (form.marcatodos.checked == true)
{
for (i = 0; i < cantidad; i++)
form.autoriza.checked = true;
}
else
{
for (i = 0; i < cantidad; i++)
form.autoriza.checked = false;
}
}
function todosValor(form,cantidad)
{

if (form.Valuetodos.checked == true)
{
valor = prompt("Ingrese porcentaje a colocar en todos\n en esta Cotización.","");
if (valor == "")
{
alert("No ingreso número valido, intentelo de nueva cuenta.");
form.Valuetodos.checked = false;
}
else
{
for (i = 0; i < cantidad; i++)
form.porcentaje.value = valor;
}
}
else
{
for (i = 0; i < cantidad; i++)
form.porcentaje.value = 0;
}
}
</script>


en php los mando llamar de la siguiente forma:

Código PHP


echo "<tr>";
echo "<td colspan=\"4\">&nbsp;</td>";
echo "<td>";
echo "<input type=\"checkbox\" name=\"Valuetodos\" onClick=\"todosValor(this.form, $numeroRegistros)\">Todos";
echo "</td>";
echo "<td>";
echo "<input type=\"checkbox\" name=\"marcatodos\" onClick=\"todos(this.form, $numeroRegistros)\">Todos";
echo "</td>";
echo "<tr>";



y parte del formulario donde tengo esos datos son:

Código PHP


echo "<td align=center>";
echo "<input type=\"text\" name=\"porcentaje[]\" value=\"$valor\">%";
echo "</td>";
echo "<td align=center>";
$str = "<input type=\"checkbox\" name=\"autoriza[]\" value =\"$id\"";
if($registro["AUTORIZA"]=="Si")
{
$str .= "checked";
}
$str .= ">";
echo "$str";
echo "</td>";



Si los llamo porcentaje y autoriza sin los "[]" me funciona la funcion en js... sin embargo al momento de recoger los datos en php para almacenarlo en la BD no me toma todos los valores...

Código PHP


$id = $_POST["id"];
$porcentaje = $_POST["porcentaje"];
$autoriza = $_POST["autoriza"];
require "conexion.php";        
for ($i=0;$i<count($id);$i++)    
    {
    /*Actualizamos precios*/
    $sql = "UPDATE cotizaciones_descripcion SET PORCENTAJE = ".$porcentaje[$i]."  WHERE id = ".$id[$i];
    mysql_query($sql, $conexion);
    }
            
    /*Actualizamos si fue autorizada o no*/
    $sql = "UPDATE cotizaciones SET AUTORIZADA = 'XA' WHERE ID =".$idcoti;         
    mysql_query($sql, $conexion);                    
    $sql = "UPDATE cotizaciones_descripcion SET AUTORIZA = 'No'  WHERE ID_COTIZACION =".$idcoti;         mysql_query($sql, $conexion);                    
    for ($i=0;$i<count($autoriza);$i++)    
    {
    /*Actualizamos si fue autorizada o no*/
    $sql = "UPDATE cotizaciones_descripcion SET AUTORIZA = 'Si'  WHERE id = ".$autoriza[$i];         
mysql_query($sql, $conexion);    
                    
    }
    mysql_close($conexion);
    echo "<script language=\"javascript\">";
    echo "alert(\"Actualización de precios y asignación, realizada correctamente.\");";
    echo "window.opener.location.reload();";
    echo "window.close();";
    echo "</script>";



No se si alguien me puede decir como recoger los datos mediante php para yo almacenarlo a la BD o como manipular el array desde javascript... agradeceria cualquier ayuda...

Gracias de antemano...

Re: Problemas con Array usando Javascript + Php +M

Avatar de panino
Nivel 7 Nivel 7 Nivel 7 Nivel 7 Nivel 7 Nivel 7 Nivel 7

(Nivel 7 - 1145 posts)

#1 Offline panino Moderador 29 mar 08 (22:40)  
Hay varias maneras de referenciar en javascript los campos en estos casos: se podrían referenciar por id en lugar de name, usando document.getElementById('idElemento'), por su jerarquía en el DOM (usando getElementsByTagName) , o como en este ejemplo, por su tipo e índice de elemento en el array elements del objeto form:

Código PHP


<script>
function verif(){
var pepez=0;
for(ii=0; ele=document.bov.elements[ii]; ii++){
if (ele.type=='checkbox')
if (ele.checked){pepez=1;break;}
}
if (pepez==1){document.bov.submit();}else{
alert('Debe seleccionar alguno de los Items');return;}
}
</script>
<form name="bov" method="post" action="">
<input type="checkbox" name="pepe[]">
<br>
<input type="checkbox" name="pepe[]">
<br>
<input type="checkbox" name="pepe[]">
<br>
<input type="button" name="Submit" value="Enviar" onclick="verif()">
</form>

www.disegnocentell.com.ar

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster