No me ejecuta comando PHP

En la página tengo 20 campos y el principal es la Factura y Ademas Diagnostico, Diagnostico1; Si dígito La factura y presiono Enter hago los select necesarios en otra página, me los hace bien y retorna bien los valores; mi problema es que debo tener un botón Submit para que lo haga, si se lo quito no hace nada.
Y ademas cuando doy Enter en cualquier otro campo debe pasar al siguiente campo, me lo hace bien cuando no tengo ese botón, pero si lo pongo en el formulario no lo hace
Este es el padazo de código que utilizo Php:
<td><input name="Factura" type="text" id="Factura" onKeyPress="if(event.keyCode==13){"&<?php include "ValidaAfiliado.php";
if(isset($_REQUEST['Factura'])){
$VP_Factura = ValidaFactura($_REQUEST['Factura']);
$VL_TipIden = $VP_Factura[0];
$VL_NoIden = $VP_Factura[1];
$VL_PriApe = $VP_Factura[2];
$VL_SegApe = $VP_Factura[3];
$VL_PriNomb = $VP_Factura[4];
$VL_SegNomb = $VP_Factura[5];
}
?>&";}"
size="10" maxlength="10"> </td>
¿Cómo hago para que me ejecute esas instrucciones sin tener el botón?
Lo mismo pasa para cuando escribo el diagnostico y Diagnostico1 traigo los datos

1 Respuesta

Respuesta
1
En php la página se crea íntegramente en el servidor y luego se envía al navegador cliente. Esto significa que en el cliente no llega nada de código php. Lo que sí puedes hacer es que al salir de ese campo o al pulsar enter (como lo tienes) se envíe de nuevo la solicitud al servidor igual que si pulsases el botón enviar pero sin tenerlo.
Te pongo un ejemplo:
<form name='fo' method='post' action='creaSelect.php'>
<td> <input name='Factura' type='text' id='factura' onKeyPress='if(event.keyCode==13){ focument.forms.fo.submit(); }' size=10 maxlength=10> </td>
</form>
Este código crea un campo de texto llamado Factura. Cuando se pulsa una tecla se comprueba si es la tecla enter y en ese caso envía los datos del formulario mediante POST al script creaSelect.php.
En creaSelect.php debes poner todo el código que quieras ejecutar en esa acción, como por ejemplo:
<?php
include "ValidaAfiliado.php";
if (isset($_POST['Factura'])) {
$VP_Factura = ValidaFactura($_REQUEST['Factura']);
$VL_TipIden = $VP_Factura[0];
$VL_NoIden = $VP_Factura[1];
$VL_PriApe = $VP_Factura[2];
$VL_SegApe = $VP_Factura[3];
$VL_PriNomb = $VP_Factura[4];
$VL_SegNomb = $VP_Factura[5];
}
?>
Supongo que es esto lo que pretendes hacer.
Cordial Saludo.
Sabes como son los usuarios, no me dijeron que debían grabar esa información así que me toca obligatoriamente tener un botón y sigue pasando lo mismo, ejecuta ese boton; no me sale el text de Factura supongo que es porque no se ha creado y esta el isset y como no existe no lo dibuja.
Bueno, creo que esto esta más complicado de lo que me imagine.
No se cual es tu página consultaAfiliados. Si es la misma página que la del formulario, puedes usar el siguiente código:
// PAGINA consultaAfiliados.php
<form name='fo' method='post' action='consultaAfiliados.php'>
<td>
<?php
include "ValidaAfiliado.php";
if (!isset($_POST['Factura'])) {
echo "<input name='Factura' type='text' id='factura' onKeyPress='if(event.keyCode==13){ focument.forms.fo.submit(); }' size=10 maxlength=10>";
} else {
$VP_Factura = ValidaFactura($_REQUEST['Factura']);
$VL_TipIden = $VP_Factura[0];
$VL_NoIden = $VP_Factura[1];
$VL_PriApe = $VP_Factura[2];
$VL_SegApe = $VP_Factura[3];
$VL_PriNomb = $VP_Factura[4];
$VL_SegNomb = $VP_Factura[5];
}
?>
</td>
</form>
// FIN PAGINA consultaAfiliados.php
No me ha quedado muy claro lo que necesitas. Segúne ste código, si no se ha enviado el formulario se muestra el campo Factura, y si ya se ha enviado, se vuelve a mostrar el formulario pero sin el campo factura y llama a ValidaFactura.
Cordial Saludo.
Realice los cambios que me sugeriste pero queda en la página CreaSelect, necesito que quede en consultaAfiliados y me muestre los datos de esa consulta.
Agradezco la ayuda que me has brindado y próximas sugerencias
No me entero muy bien que es lo que necesitas. Seria mejor si me pusieses el código de tu formulario y me explicases sobre ese código que es lo que necesitas hacer.
Por ejemplo, si tienes un formulario con varios campos que son Factura, Diagnostico y Diagnostico1, y quieres que al pulsar enter se pase al siguiente, y que al pulsar el botón Enviar se envíe, puedes usar un código parecido al siguiente:
<form name='fo'>
Factura: <input type='text' id='fact' name='Factura' onKeyPress='if(event.keyCode==13){document.forms.fo.diag.focus(); }'> <br>
Diagnostico: <input type='text' id='diag' name='Diagnostico' onKeyPress='if(event.keyCode==13){ document.forms.fo.diag1.focus(); }'> <br>
Diagnostico 1: <input type='text' id='diag1' name='Diagnostico1' onKeyPress='if(event.keyCode==13){ document.forms.fo.envi.focus(); }'> <br>
<input type='button' id='envi' value='Enviar' name='Enviar onKeyPress='document.forms.fo.submit();' onClick='document.forms.fo.submit();'>
</form>
Tienes más información en:
http://www.cs.tut.fi/~jkorpela/forms/enter.html
http://www.experts-exchange.com/Web/Web_Languages/JavaScript/Q_21274640.html
Saludos,
Este es el código, en la primera parte tengo las sentencias php para guardar los registros.
Tengo los 4 campos para búsqueda:
Factura,
Diagnostico,
Diagnostico1,
Diagnostico2
<?php
if(isset($_REQUEST['Oculto']))
{
if(isset($_REQUEST['btnGuardar']))
{
include "conexion.php";
mssql_select_db ("db", $conexion);
if($Ins=mssql_query("insert into table(Factura,Medico,CodPresServ,
CodConsulta,FechaConsulta,FinalConsulta,CausaExterna,
DiagPrincipal,DiagRelac1,DiagRelac2,TipoDiag,Empresa)
values(".$_REQUEST['Factura'].",'".$_REQUEST['Medico'].
"','UT-001',".$_REQUEST['txtCodConsul'].",'"
.$_REQUEST['txtFechaConsul']."','".$_REQUEST['txtFinaConsul'].
"','".$_REQUEST['txtCausaExte']."','".$_REQUEST['Diagnostico'].
"','".$_REQUEST['Diagnostico1']."','".$_REQUEST['Diagnostico2'].
"','".$_REQUEST['txtTipoDiag']."','".$_REQUEST['Empresa']."')",$conexion))
echo "<script>";
echo "alert('Datos Guardados con éxito');";
echo "</script>";
mssql_close($conexion);
}
}
?>
<html>
<head>
<title>Consulta Externa Afiliados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="" method="post" name="form1">
<table width="75%" align="center">
<tr>
<td colspan="4"><div align="right">dfdfdf</div>
<div align="right"></div></td>
</tr>
<tr>
<td><div align="right">Factura</div></td>
<td><input name="Factura" type="text" id="Factura" onKeyPress="if(event.keyCode==13){'&<?php include "ValidaAfiliado.php";
if(isset($_REQUEST['Factura'])){
$arr[0] = $_REQUEST['Medico'];
$arr[1] = $_REQUEST['txtCodConsul'];
$arr[2] = $_REQUEST['txtFechaConsul'];
$arr[3] = $_REQUEST['txtFinaConsul'];
$arr[4] = $_REQUEST['txtCausaExte'];
$arr[5] = $_REQUEST['txtTipoDiag'];
//$arr[6] = $_REQUEST['Empresa'];
echo "<script>";
echo "alert(".$Factura.");";
echo "</script>";
$VP_Factura = ValidaFactura($_REQUEST['Factura']);
$VL_TipIden = $VP_Factura[0];
$VL_NoIden = $VP_Factura[1];
$VL_PriApe = $VP_Factura[2];
$VL_SegApe = $VP_Factura[3];
$VL_PriNomb = $VP_Factura[4];
$VL_SegNomb = $VP_Factura[5];
$VL_Medico = $arr[0];
$VL_CodConsul = $arr[1];
$VL_FechaConsul = $arr[2];
$VL_FinConsul = $arr[3];
$VL_CausaExte = $arr[4];
$VL_TipoDiag = $arr[5];
//$VL_Empresa = $arr[6];
}
?>&'; submit();}"
value="<?php echo $Factura;?>" size="10" maxlength="10"> </td>
<td><div align="right">Medico</div></td>
<td><input name="Medico" type="text" id="Medico" value="<?php echo $VL_Medico;?>" size="30" maxlength="30" ></td>
</tr>
<tr>
<td><div align="right">Tipo Identificación</div></td>
<td><input name="txtTipIden" type="text" id="txtTipIden" value="<?php echo $VL_TipIden;?>" size="2" maxlength="2" readonly=""></td>
<td><div align="right">Número Identificación</div></td>
<td><input name="txtNoIden" type="text" id="txtNoIden" value="<?php echo $VL_NoIden;?>" size="16" maxlength="16" readonly=""></td>
</tr>
<tr>
<td><div align="right">Primer Apellido</div></td>
<td><input name="txtPriApel" type="text" id="txtPriApel" value="<?php echo $VL_PriApe;?>" size="20" maxlength="20" readonly=""></td>
<td><div align="right">Segundo Apellido</div></td>
<td><input name="txtSegApel" type="text" id="txtSegApel" value="<?php echo $VL_SegApe;?>" size="20" maxlength="20" readonly=""></td>
</tr>
<tr>
<td><div align="right">Primer Nombre</div></td>
<td><input name="txtPriNombre" type="text" id="txtPriNombre" value="<?php echo $VL_PriNomb;?>" size="20" maxlength="20" readonly=""></td>
<td><div align="right">Segundo Nombre</div></td>
<td><input name="txtSegNombre" type="text" id="txtSegNombre" value="<?php echo $VL_SegNomb;?>" size="20" maxlength="20" readonly=""></td>
</tr>
<tr>
<td><div align="right">Código Consulta</div></td>
<td><input name="txtCodConsul" type="text" id="txtCodConsul" size="5" maxlength="5" onKeyPress="if(event.keyCode==13){document.form1.txtFechaConsul.focus();}" value="<?php echo $VL_CodConsul;?>"></td>
<td><div align="right">Fecha Consulta</div></td>
<td><input name="txtFechaConsul" type="text" id="txtFechaConsul" value="<?php echo $VL_FechaConsul;?>" size="10" maxlength="10"></td>
</tr>
<tr>
<td><div align="right">Finalidad Consulta</div></td>
<td><input name="txtFinaConsul" type="text" id="txtFinaConsul" size="2" maxlength="2" value="<?php echo $VL_FinConsul;?>"></td>
<td><div align="right">Causa Externa</div></td>
<td><input name="txtCausaExte" type="text" id="txtCausaExte" value="<?php echo $VL_CausaExte;?>" size="2" maxlength="2" ></td>
</tr>
<tr>
<td height="24">
<div align="right">Diagnostico</div></td>
<td><input name="Diagnostico" type="text" id="Diagnostico" onKeyPress="if(event.keyCode==13){'&<?php include "ValidaDiag.php";
if(isset($_REQUEST['Diagnostico'])){
$VP_NombDiag = ValidaDiagnos($_REQUEST['Diagnostico']);
$VL_NombDiag=$VP_NombDiag;}
?>&'; submit(); }" value="<?php echo $Diagnostico;?>" size="4" maxlength="4"></td>
<td><div align="right">Nombre Diagnostico</div></td>
<td><input name="txtNombDiag" type="text" id="txtNombDiag" value="<?php echo $VL_NombDiag;?>" size="30" maxlength="30" readonly=""></td>
</tr>
<tr>
<td><div align="right">Diagnostico Relativo 1</div></td>
<td><input name="Diagnostico1" type="text" id="Diagnostico1" onKeyPress="if(event.keyCode==13){'&<?php include "ValidaDiag1.php";
if(isset($_REQUEST['Diagnostico1'])){
$VP_NombDiag1 = ValidaDiagnos1($_REQUEST['Diagnostico1']);
$VL_NombDiag1 = $VP_NombDiag1;}
?>&'; submit(); }" value="<?php echo $Diagnostico1;?>" size="4" maxlength="4" ></td>
<td><div align="right">Nombre Diagnostico</div></td>
<td><input name="txtNombDiag1" type="text" id="txtNombDiag1" size="30" maxlength="30" value="<?php echo $VL_NombDiag1;?>" readonly=""></td>
</tr>
<tr>
<td><div align="right">Diagnostico Relativo 2</div></td>
<td><input name="Diagnostico2" type="text" id="Diagnostico2" onKeyPress="if(event.keyCode==13){'&<?php include "ValidaDiag2.php";
if(isset($_REQUEST['Diagnostico2'])){
$VP_NombDiag2 = ValidaDiagnos2($_REQUEST['Diagnostico2']);
$VL_NombDiag2=$VP_NombDiag2;}
?>&'; submit(); }" value="<?php echo $Diagnostico2;?>" size="4" maxlength="4"></td>
<td><div align="right">Nombre Diagnostico</div></td>
<td><input name="txtNombDiag2" type="text" id="txtNombDiag2" onKeyPress="if(event.keyCode==13){document.form1.txtTipoDiag.focus();}" value="<?php echo $VL_NombDiag2;?>" size="30" maxlength="30" readonly=""></td>
</tr>
<tr>
<td><div align="right">Tipo Diagnostico</div></td>
<td><input name="txtTipoDiag" type="text" id="txtTipoDiag" value="<?php echo $VL_TipoDiag;?>" size="1" maxlength="1" ></td>
<td><div align="right">Empresa</div></td>
<td><input name="Empresa" type="text" id="Empresa" value="<?php echo $VL_Empresa;?>" size="30" maxlength="30"></td>
</tr>
<tr>
<td><div align="right">
<input name="Oculto" type="hidden" id="Oculto" value="1">
</div></td>
<td><input name="btnGuardar" type="button" id="btnGuardar" value="Guardar" onKeyPress="document.forms.form1.submit();" onClick="document.forms.form1.submit();"></td>
<td><div align="right"> </div></td>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
Agradezco la ayuda que me estas brindando.
Por lo que estoy viendo en el código lo que quieres es primero se introduce una factura, y en ese momento se envía el formulario completo al servidor, se rellenan los datos y se vuelve de vuelta para poder modificarlos.
En este caso puedes realizarlo de la siguiente forma. Te pongo sólo la parte de código que sistituye al campo Factura. El resto de campos que usen algo similar como Diagnostico, sería hacer lo mismo:
<tr>
<td><div align="right">Factura</div></td>
<td>
<input name="Factura" type="text" id="Factura" onKeyPress="if(event.keyCode==13){
if( document.forms.form1.Factura == '' ) {
document.forms.form1.Factura.focus();
return false;
} else {
document.forms.form1.submit();
}
}"; value="<?php echo $_REQUEST['Factura']; ?>" size='10' maxlength='10'> </td>
<?php
if(isset($_REQUEST['Factura'])){
$_REQUEST['Factura'] = "FFrRRs395478";
include "ValidaAfiliado.php";
$arr[0] = $_REQUEST['Medico'];
$arr[1] = $_REQUEST['txtCodConsul'];
$arr[2] = $_REQUEST['txtFechaConsul'];
$arr[3] = $_REQUEST['txtFinaConsul'];
$arr[4] = $_REQUEST['txtCausaExte'];
$arr[5] = $_REQUEST['txtTipoDiag'];
//$arr[6] = $_REQUEST['Empresa'];
$VP_Factura = ValidaFactura($_REQUEST['Factura']);
$VL_TipIden = $VP_Factura[0];
$VL_NoIden = $VP_Factura[1];
$VL_PriApe = $VP_Factura[2];
$VL_SegApe = $VP_Factura[3];
$VL_PriNomb = $VP_Factura[4];
$VL_SegNomb = $VP_Factura[5];
$VL_Medico = $arr[0];
$VL_CodConsul = $arr[1];
$VL_FechaConsul = $arr[2];
$VL_FinConsul = $arr[3];
$VL_CausaExte = $arr[4];
$VL_TipoDiag = $arr[5];
//$VL_Empresa = $arr[6];
}
?>
<td><div align="right">Medico</div></td>
<td><input name="Medico" type="text" id="Medico" value="<?php echo $VL_Medico;?>" size="30" maxlength="30" ></td>
</tr>
Pruébalo de esta forma.
Cordial saludo.
Olvide comentarte un pequeño detalle; viste el código php para adicionar los registros que estan al principio de todo el código php.
Me funciona muy bien el código que me enviaste y es más ordenado; pero lo que no te comente es que tengo un botón que lo llame btnGuardar y cuando presiono enter en cualquier campo que tengo que digitar: txtTipIden, etc me dispara el código php para adicionar y como es lógico muestra error porque no se han completado todos los campos; intente ponerlo de la siguiente manera:
<td><div align="right">
<input name="Oculto" type="hidden" id="Oculto" value="1">
</div></td>
<td><input name="btnGuardar" type="button" id="btnGuardar" value="Guardar" onClick="document.forms.form1.submit();"></td>
<?php
if(isset($_REQUEST['Oculto']))
{
if(isset($_REQUEST['btnGuardar']))
{
include "conexion.php";
mssql_select_db ("database", $conexion);
if($Ins=mssql_query("insert into table(Factura,Medico,CodPresServ,
CodConsulta,FechaConsulta,FinalConsulta,CausaExterna,
DiagPrincipal,DiagRelac1,DiagRelac2,TipoDiag,Empresa)
values(".$_REQUEST['Factura'].",'".$_REQUEST['Medico'].
"','UT-001',".$_REQUEST['txtCodConsul'].",'"
.$_REQUEST['txtFechaConsul']."','".$_REQUEST['txtFinaConsul'].
"','".$_REQUEST['txtCausaExte']."','".$_REQUEST['Diagnostico'].
"','".$_REQUEST['Diagnostico1']."','".$_REQUEST['Diagnostico2'].
"','".$_REQUEST['txtTipoDiag']."','".$_REQUEST['Empresa']."')",$conexion))
echo "<script>";
echo "alert('Datos Guardados con éxito');";
echo "</script>";
mssql_close($conexion);
}
}
?>
Pero no me dispara el código Php.
Agradezco la ayuda valiosa que me estas brindando.
La comprobación que estás haciendo no sirve. Tienes lo siguiente:
if(isset($_REQUEST['Oculto']))
{
if(isset($_REQUEST['btnGuardar']))
{
- La variable $_REQUEST['Oculto'] vale siempre 1.
- BtnGuardar no lo puedes usar para comprobar el resto de campos.
La solución está en comprobar uno por uno todos los campos que son imprescindibles para la base de datos y ver si todos tienen valores y si esos valores son correctos. Por ejemplo, en el caso de que pusieses una dirección de correo electrónico, debe tener una arroba. Otro ejemplo es con los número de teléfono, no pueden tener letras y deben tener una longitud determinada.
De todos los campos que tienes, marca algunos como imprescindibles, y en vez de usar las comprobaciones que tienes, comprueba que esos campos no están vacíos. En caso de que alguno esté vacío no introduzcas datos en la base de datos, e incluso puedes mostrar un aviso.
Para comprobar de forma sencilla si varios campos tienen algún valor, puedes usar:
if ($campo1 AND $campo2 AND $campo3) {
// correcto
} else {
// alguna de esas variables está vacía
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas