No me toma valor de variable

En la forma tengo que validar que cuando el usuario presione guardar salga un mensaje de texto dicioendo si de veras lo quiere guardar, tengo un campo oculto para guardar el valor 1 o 0 dependiendo de lo que escoja pero no parece que lo hiciera porque no valida bien el código php. Este es el pedazo de código que utilizo.
<td><input name="btnGuardar" type="button" id="btnGuardar" value="Guardar" onClick="document.forms.form1.submit();">
<input name="guardar" type="hidden" id="guardar"> </td>
<?php
if($_REQUEST['NoIdent'] && $_REQUEST['txtCodDepto'] && $_REQUEST['txtCodMun'] &&
$VL_PriApel && $VL_PriNomb && $VL_FechaNac && $VL_NombDepto && $VL_NombMun)
{
echo "<script language='JavaScript'>";
echo "acept = window.confirm('¿Esta seguro de guardar los datos del Particular?');";
echo "if(acept==true)
{
document.forms.form1.guardar.value = 1;
}
if(acept==false)
{
document.forms.form1.guardar.value = 0;
}
";
echo "</script>";
$VL_Guardar = $_REQUEST['guardar'];
if($VL_Guardar==0)
{
$Ins = mssql_query("Insert into Particulares(PartNumIdenti,
PartTipoIdenti,PartPriApellido,PartSegApellido,
PartPriNombre,PartSegNombre,PartFechaNaci,PartSexo,
PartZona,PartCodigoDepto,PartCodigoMuni)
values('".$_REQUEST['NoIdent']."','".
$_REQUEST['cbTipIdent']."','".
$_REQUEST['txtPriApel']."','".
$_REQUEST['txtSegApel']."','".
$_REQUEST['txtPriNomb']."','".
$_REQUEST['txtSegNomb']."','".
$_REQUEST['txtFechaNac']."','".$_REQUEST['cbSexo'].
"','".$_REQUEST['cbZona']."',"
.$_REQUEST['txtCodDepto'].",".$_REQUEST['txtCodMun'].
")",$conexion);
if($Ins)
{
echo "<script>";
echo "alert('Se Guardo exitosamente los datos del Particular');";
echo "</script>";
mssql_close($conexion);
}
else
{
echo "<script>";
echo "alert('Se presentaron errores al Guardar');";
echo "</script>";
}
}
}
?>

1 Respuesta

Respuesta
1
El script que rellena el campo oculto tienes que ponerlo en la parte del formulario, no puedes ponerlo dentro del código php porque se ejecutaría después de enviar el formulario. El código te quedaría algo parecido a lo siguiente:
<td><input name="btnGuardar" type="button" id="btnGuardar" value="Guardar" onClick="enviar();">
<input name="guardar" type="hidden" id="guardar"> </td>
<script language='JavaScript'>
function enviar() {
acept = window.confirm('¿Esta seguro de guardar los datos del Particular?');
if(acept==true)
{
document.forms.form1.guardar.value = 1;
document.forms.form1.submit();
} else {
document.forms.form1.guardar.value = 0;
}
}
</script>
</table>
</form>
<?php
if($_REQUEST['NoIdent'] && $_REQUEST['txtCodDepto'] && $_REQUEST['txtCodMun'] &&
$VL_PriApel && $VL_PriNomb && $VL_FechaNac && $VL_NombDepto && $VL_NombMun)
{
$VL_Guardar = $_REQUEST['guardar'];
if($VL_Guardar==0)
{
$Ins = mssql_query("Insert into Particulares(PartNumIdenti,
PartTipoIdenti,PartPriApellido,PartSegApellido,
PartPriNombre,PartSegNombre,PartFechaNaci,PartSexo,
PartZona,PartCodigoDepto,PartCodigoMuni)
values('".$_REQUEST['NoIdent']."','".
$_REQUEST['cbTipIdent']."','".
$_REQUEST['txtPriApel']."','".
$_REQUEST['txtSegApel']."','".
$_REQUEST['txtPriNomb']."','".
$_REQUEST['txtSegNomb']."','".
$_REQUEST['txtFechaNac']."','".$_REQUEST['cbSexo'].
"','".$_REQUEST['cbZona']."',"
.$_REQUEST['txtCodDepto'].",".$_REQUEST['txtCodMun'].
")",$conexion);
if($Ins)
{
echo "<script>";
echo "alert('Se Guardo exitosamente los datos del Particular');";
echo "</script>";
mssql_close($conexion);
}
else
{
echo "<script>";
echo "alert('Se presentaron errores al Guardar');";
echo "</script>";
}
}
}
?>
De todas formas, creo que no es necesario que uses un campo oculto ya que según el código que te he puesto sólo se envía el formulario en caso de aceptar la pregunta. Si no se acepta la pregunta no se ejecuta el código en php porque no se envía el formulario. Te propongo el siguiente código que funcionaría igual:
<td><input name="btnGuardar" type="button" id="btnGuardar" value="Guardar" onClick="enviar();">
</td>
<script language='JavaScript'>
function enviar() {
acept = window.confirm('¿Esta seguro de guardar los datos del Particular?');
if(acept==true) {
document.forms.form1.submit();
}
}
</script>
</table>
</form>
<?php
if($_REQUEST['NoIdent'] && $_REQUEST['txtCodDepto'] && $_REQUEST['txtCodMun'] &&
$VL_PriApel && $VL_PriNomb && $VL_FechaNac && $VL_NombDepto && $VL_NombMun)
{
$Ins = mssql_query("Insert into Particulares(PartNumIdenti,
PartTipoIdenti,PartPriApellido,PartSegApellido,
PartPriNombre,PartSegNombre,PartFechaNaci,PartSexo,
PartZona,PartCodigoDepto,PartCodigoMuni)
values('".$_REQUEST['NoIdent']."','".
$_REQUEST['cbTipIdent']."','".
$_REQUEST['txtPriApel']."','".
$_REQUEST['txtSegApel']."','".
$_REQUEST['txtPriNomb']."','".
$_REQUEST['txtSegNomb']."','".
$_REQUEST['txtFechaNac']."','".$_REQUEST['cbSexo'].
"','".$_REQUEST['cbZona']."',"
.$_REQUEST['txtCodDepto'].",".$_REQUEST['txtCodMun'].
")",$conexion);
if($Ins)
{
echo "<script>";
echo "alert('Se Guardo exitosamente los datos del Particular');";
echo "</script>";
mssql_close($conexion);
}
else
{
echo "<script>";
echo "alert('Se presentaron errores al Guardar');";
echo "</script>";
}
}
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas