Foros del Web » Programando para Internet » PHP »

submit form en misma area?

Estas en el tema de submit form en misma area? en el foro de PHP en Foros del Web. holaa todos, he estado tratando de diseñar un pequeño portal con un menu de navegacion que esta dentro de mi pagina del portal creada con ...
  #1 (permalink)  
Antiguo 08/09/2010, 09:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta submit form en misma area?

holaa todos, he estado tratando de diseñar un pequeño portal con un menu de navegacion que esta dentro de mi pagina del portal creada con dreamweaver donde al parecer no usa frames sino columnas, he logrado que al dar click en el link (columna izq chica, div class "sidebar1") se muestre el contenido en el area donde deseo (que seria digamos el area principal del portal, la columna grande, div class "content") pero mi problema es que lo primero que deseo que se haga en cierto link es validar si un dato exxiste o no en una tabla, eso digamos que lo pude hacer de una u otra manera, solo que con la accion del form submit se carga una nueva pagina en el navegador, lo que desearia es saber si existe la manera que se analize si ese valor existe o no, e independientemente del resultado de la consulta, mi nuevo contenido se siga mostrando en esa area... no se si me estoy explicando

mi portal es main.php y donde estan los link es:

Código HTML:
<div class="sidebar1">
    <ul class="nav">
      <li><a href="?content=usr">Usr</a></li>
    </ul> 
deje lo de div class por si esto es necesario para hacerme alguna observacion...

y donde esta el div class content tengo: (esos nombres se los puso dreamweaver, yo estoy usando $content y $_GET[content] y la verdad no se si estan relacionados de alguna manera con ese otro content), lo tome de un codigo de ejemplo.

Código PHP:
<?php 
    $content
$_GET[content];
    if (
$content=="hw"){
        include (
'hw.php');
    }
    if (
$content=="usr"){
    include (
'checa_usr2.php');
    }
    
?>
el primero lo de hw.php fue mi prueba con el hello world... soy bastante novato en PHP pero he estado leyendo mucho, y si tengo mucha experiencia del pasado con html. Lo he dejado por ahora para no perderme jeje

(Antes el link del area tenia
Código HTML:
<a href="?content=hw"> 
en lugar de content=usr... solo para efectos de pruebas y entendimiento de lo que hacia...)

Entonces al dar click en ese link el contenido de hw.php se desplegaba en el area deseada, pero ahora tengo checa_usr2.php que es unicamente el formulario, fuera de las marcas php como html cualquiera (no se si esto sea error, mala praxis o haya mejor manera de llevar mi procedimiento...)

basicamente es:

Código HTML:
<form action="checa_usr.php" method="post">
Num Afil: <input type="text" name="npa" />
<input type="submit" />
</form> 
no se si sea la mejor manera de llevarlo a cabo tampoco o si con un hypervinculo en lugar de un submit? no tendria mucha idea de como hacerlo...

el archivo checa_usr.php es el que hace mi conexion mysql, para lo cual el usa la funcion requiere para jalar los datos para la conexion ya que eso lo aprendi en el modulo de login que use, creado por Cluster, despues de buscar el dato numAfil, tengo lo siguiente:

Código PHP:
$usr_consulta mysql_query("SELECT * FROM $sql_tabla WHERE numAfil='".$_POST['npa']."'") or die(header ("Location:  $redir?error_login=1")); //busca

 
if (mysql_num_rows($usr_consulta) != 0) {
require (
"adelante.php");
 }else {
      require(
"atras.php");
      exit;} 
lo que no logro hacer es que el contenido ya sea de adelante.php (que debera detener y avisar que si existe ese registro) o atras.php (que seria mi formulario para nuevo registro) aparezca en el area content... y no que me cargue una nueva pagina haciendome asi perder el portal con el resto de las opciones de mi menu en el sidebar, diseño, todo...

no se si de inicio no esta planteado como debe ser ya que me fui por lo facil y dejar a dreamweaver hacerme el template, o si deberia hacer menos funciones requiere o algun otro tipo de ajuste en mi codigo existente...

he estado probando la funcion $PHP_SELF solo que la verdad aun no logro que haga nada correcto, me salen errores y warnings asi que creo que no la se manejar aun...

cualquier comentario o sugerencia es bienvenido,

gracias.
  #2 (permalink)  
Antiguo 08/09/2010, 11:30
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: submit form en misma area?

pues suena más o menos lógico lo que pretendes..

que si se puede hacer de mejor manera bueno eso se da con la práctica :)

de lo que mencionas(cargar en una parte de la página), intentar hacer eso.. yo trabajo con el modelo de web modular, diseño las partes de mi página, la maqueto con CSS, y después manipulo las secciones con headers de archivos PHP..

en ese caso cuando seleccione la opción del formulario que dices, elegiría cual mostrar en términos de la consulta o lo que deses..

hay bastante información por ahí .. tanto en google, como aquí en el foro, checala probablemente te sirva de algo..

otra opción sería hacerlo con AJAX, pero bueno ahí sería hacer toda la página entera, así que no se que tan contraproducente re resulte..

por último te recomiendo que no dejes todo en manos de DW, intenta por ahí hacer las cosas a mano, sirve que aprendes y no te pierdes con la manera en que el programa inserta las variables... ;)

saludos =)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #3 (permalink)  
Antiguo 08/09/2010, 12:03
Avatar de triibhals  
Fecha de Ingreso: agosto-2010
Mensajes: 93
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: submit form en misma area?

te Recomiendo Leer sobre Jquery eso hace mas presentables tu menus de Navegacion
  #4 (permalink)  
Antiguo 08/09/2010, 12:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: submit form en misma area?

Gracias por tan prontas respuestas.

@silvanha: gracias por tus observaciones, a pesar de usar DW realmente lo que queria era ahorrarme el diseño del portal mas que otra cosa, me gusta programar, la verdad no se ni como generar codigo php en DW, solo le agrego los tags y le meto el codigo... le estoy haciendo como puedo para sacar este proyecto. Tomare en cuenta esos temas para buscar y leer.

@triibhals: Gracias chief, esta anotado.

Les comento que logre modificar el codigo para que haga un poco lo que quiero, sin embargo estoy teniendo problemas con los session, asi que estoy ahora mismo leyendo al respecto ya qu eno quiero tener problemas con ellos a futuro.

asi esta ahora mi checha_usr2.php (el formulario)


Código HTML:
<form action="<?php echo $_SERVER['PHP_SELF'].'?content=busca';?>" method="post">
Num Afil: <input type="text" name="npa" maxlength="11" />
<input type="submit" />
</form> 
y en el main.php el area de class content:

Código PHP:
if ($content=="busca"){
        include(
'checa_usr.php');
    } 
y bueno como les comente al parecer me muestra pero con warnings sobre las session, que no comprendo en su totalidad (pero en eso estoy) no le quiero simplemente remover las linea del error porque creo que es necesario para la validacion de la sesion....

Saludos.
  #5 (permalink)  
Antiguo 08/09/2010, 13:34
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: submit form en misma area?

y que error te marca?
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #6 (permalink)  
Antiguo 08/09/2010, 14:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: submit form en misma area?

^ que tal, gracias por la info.

bueno son warnings, en checa_usr.php tengo

Código PHP:
if (mysql_num_rows($usr_consulta) != 0) {
require (
"adelante.php");
 }else {
      require(
"atras.php");
      exit;} 
a modo de aprenderle, modifique adelante.php en un area que no modifique atras.php, esto es lo que aparece en atras.php y que no aparece en adelante.php (por el momento) es el encabezo de script de login creado por Cluster, si se lo quito los warning no salen... (solo que no creo que esa sea la mejor solucion, ademas no quiero afectar ese script).

Código PHP:
require("aut_verifica.inc.php");
$nivel_acceso=2// Nivel de acceso para esta página. Dos (2) segun yo es el nivel maximo....(0-2)
if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit; 
El warning como tal es:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\transportes\main.php:157) in C:\xampp\htdocs\transportes\aut_verifica.inc.php on line 142

algo que me llama la atencion es que cuando ambos tenian eso que quite el error era el mismo para la linea de main.php, y no modifique para nada main.php, y me llama mas la atencion porque la linea 157 solo es una llama que abre: <?php y nada mas...

y aut_verifica.php en su linea 142 es una sentencia del tipo:

session_start();

asi que estoy tratando de entender esto de las sesiones para no terminar hecho un lio con ellas, sin considerar que me es necesario usar ese script de login (porque es el unico que he podido echar a andar)...

Cualquier apoyo se agradece, saludos.
  #7 (permalink)  
Antiguo 08/09/2010, 18:11
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: submit form en misma area?

ese error te lo manda porque estas mandando a imprimir algo antes de iniciar la sesión, o bien estas intentando redireccionar desde donde ya hay una salida en pantalla..

y...

Cita:
a modo de aprenderle, modifique adelante.php en un area que no modifique atras.php
no entendí O.O'
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #8 (permalink)  
Antiguo 08/09/2010, 18:12
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: submit form en misma area?

ese error te lo manda porque estas mandando a imprimir algo antes de iniciar la sesión, o bien estas intentando redireccionar desde donde ya hay una salida en pantalla..

y...

Cita:
a modo de aprenderle, modifique adelante.php en un area que no modifique atras.php
no entendí O.O'

EDITO me marco error, y resulta que ya habia posteado ¬¬' alguien que borre esto por favor ¬¬'
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)

Última edición por silvanha; 08/09/2010 a las 18:13 Razón: se posteo doble, y no fue mi culpa u.u
  #9 (permalink)  
Antiguo 09/09/2010, 09:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: submit form en misma area?

^ gracias por las respuestas, lo que quise decir con ese cometario jeje fue que, como tengo

Código PHP:
if (mysql_num_rows($usr_consulta) != 0) {
require (
"adelante.php");
 }else {
      require(
"atras.php");
      exit;} 
al archivo adelante.php le modifique (vaya, le borre):

Código PHP:
require("aut_verifica.inc.php");
$nivel_acceso=2// Nivel de acceso para esta página. Dos (2) segun yo es el nivel maximo....(0-2)
if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit; 
ya que, en teoria ambos deberian tener esas lineas para que el script de login funcione, sin embargo para ver que pasaba se lo quité a uno de los dos y el error desaparecio, mejor dicho, el warning... solo al requerir el archivo que le removi eso. con el otro siguio pasando...

te comento que estoy probando la funcion

Código PHP:
<?php
if (!isset($_SESSION)) {
    
session_start();
    }
    
?>
y me esta resultando, solo que no se si es la solucion apropiada... al momento aun no se si va a resultar con el script de login, existe una manera de trabajar esa funcion sin que me afecte el script de login? que arreglo tendria que hacerle a mis archivos que deseo proteger? ese codigo se lo pegue a main.php hasta arriba... afectara mi script de login? como podria evitarlo? o mejor le busco otra salida a mi Warning????

cualquier info es apreciada,

gracias.

Etiquetas: area, submit, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:23.