Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Se podrá hacer esto

Estas en el tema de Se podrá hacer esto en el foro de Frameworks JS en Foros del Web. Estoy usando ajax para mostrar el contenido de acuerdo al menu que seleccione, y todo va bien, hasta que muestro el formulario para guardar datos, ...
  #1 (permalink)  
Antiguo 05/05/2007, 23:30
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Se podrá hacer esto

Estoy usando ajax para mostrar el contenido de acuerdo al menu que seleccione, y todo va bien, hasta que muestro el formulario para guardar datos, aparece bien, pero cuando doy click al boton guardar me envia a otra pagina o no me envia los datos, aqui les pongo parte del codigo, este es el archivo php:
Código PHP:
switch ($opt) {
    case 
"puerto":
    case 
"dist":
        
$con "<span id='content_menu'>Mantenimiento de Distritos</span><br />";
        
$con .= "<span id='menu_content'>";
        
$con .= "  <a href=\"javascript:show_content('distn')\">Nuevo</a>";
        
$con .= "</span><br /><br />";
        
$con .= "<div id='grid_puertos'>";
        
$con .= "<table width = '100%' border = '0' id='contenido_style'>";
        
$con .= "  <tr bgcolor='#CCCCCC'>";
        
$con .= "    <td width='50'>&nbsp;CODIGO</td>";
        
$con .= "    <td width='450'>&nbsp;NOMBRE</td>";
        
$con .= "  </tr>";
        
$rsp $inicl->consult("SELECT dis_code, dis_nome FROM distritos ORDER BY dis_code");
        
$i 0;
        while (
$obp mysql_fetch_array($rsp)) {
            ++
$i;
            if (
$i == 0) {
                
$con .= "<tr bgcolor='#FFFFFF'>";
                
$con .= "  <td>&nbsp;" $obp[0] . "</td>";
                
$con .= "  <td>&nbsp;" $obp[1] . "</td>";
                
$con .= "</tr>";
            }
            else {
                
$con .= "<tr bgcolor='#F5F5F5'>";
                
$con .= "  <td>&nbsp;" $obp[0] . "</td>";
                
$con .= "  <td>&nbsp;" $obp[1] . "</td>";
                
$con .= "</tr>";
            }
        }
        
$con .= "</table>";
        
$con .= "</div>";
        echo 
$con;
        break;
    case 
"distn":
        
$con "<span id='content_menu'>Mantenimiento de Distritos</span><br />";
        
$con .= "<span id='menu_content'>";
        
$con .= "  <a href=\"javascript:show_content('dist')\">Ver Lista</a>";
        
$con .= "</span><br /><br />";
        
$con .= "<div id='grid_puertos'>";
        
$con .= "<form action=\"javascript:show_content('distg')\" method='post' onSubmit='return valida_form_dist(this)'>";
        
$con .= "<input type='hidden' name='send'>";
        
$con .= "<span id='contenido_style'>Nombre del distrito</span><br />";
        
$con .= "<input name='ndist' value='' id='input_login' type='text' /><br />";
        
$con .= "<input type='image' src='http://localhost/rasan/img/button_guardar.jpg'><br />";
        
$con .= "</form>";
        echo 
$con;
        break;
    case 
"distg":
        
$con "<span id='content_menu'>Mantenimiento de Distritos</span><br />";
        
$con .= "<span id='menu_content'>";
        
$con .= "  <a href=\"javascript:show_content('dist')\">Ver Lista</a> | <a href=\"javascript:show_content('distn')\">Nuevo</a>";
        
$con .= "</span><br /><br />";
        
$con .= "<div id='grid_puertos'>";
        
//Procesamos el formulario de guardado del distrito.
        
if (isset($_POST["send"])) {
            
$rsd $inicl->consult("SELECT dis_nome FROM distritos WHERE dis_nome = '$ndist'");
            
$nr $inicl->numberRows($rsd);
            if (
$nr 0) {
                
$con .= "El nombre que intenta agregar ya existe.<br />";
                
$con .= "Elija entre las opciones de arriba para continuar.";
            }
            else {
                
$rsi $inicl->consult("INSERT INTO distritos(dis_nome) VALUES (" $ndist ")");
                if (!
$rsi) {
                    
$con .= "No se pudo guardar el registro.";
                }
                else {
                    
$con .= "Su registro fue guardado con &eacute;xito.";
                }
            }
        }
        echo 
$con;
        break;

Como veran cuando doy click a un menu de distritos (por ejemplo) me muestra lo del case "dist" en ese mismo sector hay un link llamado nuevo que al darle click llama a la misma funcion para mostrar el formulario para ingresar nuevos registros, luego en el case "distn" el metodo action del formulario usa la misma funcion para procesar el formulario, pero me doy con la sorpresa que los datos como lo que escribi en el cuadro de texto, no pasa.

Estoy haciendo mal?, asi no se debe hacer?, como puedo solucionar esto?

Espero su respuesta y desde ya muchas gracias.
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 06/05/2007, 22:44
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Re: Se podrá hacer esto

Por favor, solo quiero que me digan si esto que estoy haciendo es viable y si lo es, que cosa estaria mal y si no lo es una idea de como deberia hacerlo
__________________
El aprendiz.
  #3 (permalink)  
Antiguo 07/05/2007, 08:49
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Re: Se podrá hacer esto

Algun moderador podra darme una manita, xfa me urge esto y deseo salir de la duda. Quizas estoy haciendo mal las cosas.
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 08/05/2007, 10:46
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: Se podrá hacer esto

loading.............


hermano, no veo en ningún lado de tu código que uses alguna metodología AJAX.
Tus funciones ajax deberian ir dentro el evento ONSUBMIT y tu method

$con .= "<form action=\"javascript:show_content('distg')\"

Osea al hacer onSubmit, deberias llamar a una funcion javascript, que coja los datos de tu Form y te los envie al server.

connection closed.
__________________

Maborak Technologies
  #5 (permalink)  
Antiguo 08/05/2007, 20:56
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Re: Se podrá hacer esto

vaya creo que no entendi, o quizas si, pero no le hayo como hacerlo, please me pasas un ejemplo o algo de como guiarme, porfa.
__________________
El aprendiz.
  #6 (permalink)  
Antiguo 09/05/2007, 00:29
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Re: Se podrá hacer esto

Tengo algo que estuve haciendo, me parece que asi se soluciona mi problema, pero al dar click en el boton de guardar se queda con el mensaje de "Procesando..." y no continua.

Aqui el segmento del archivo que contiene el form:
Código PHP:
case "distn":
    
$con "<span id='content_menu'>Mantenimiento de Distritos</span><br />";
    
$con .= "<span id='menu_content'>";
    
$con .= "  <a href=\"javascript:show_content('dist')\">Ver Lista</a>";
    
$con .= "</span><br /><br />";
    
$con .= "<div id='grid_puertos'>";
    
$con .= "<form action=\"javascript:process('distg')\" method='post' onSubmit='return valida_form_dist(this)'>";
    
$con .= "<input type='hidden' name='dist'>";
    
$con .= "<span id='contenido_style'>Nombre del distrito</span><br />";
    
$con .= "<input name='ndist' value='' id='dnombre' type='text' class='input_login' /><br />";
    
$con .= "<input type='image' src='img/button_guardar.jpg'><br />";
    
$con .= "</form>";
    echo 
$con;
    break; 
Aquí la parte del archivo .js con la funcion process:
Código PHP:
function process(caso) {
    
//Donde se mostrarán las respuestas.
    
divContent document.getElementById('contenido_pagina');
    
valor document.getElementById('dnombre').value;
    
divContent.innerHTML "Procesando...";
    
    
    
ajax objetoAjax();
    
ajax.open("GET","php-includes/show_contenido.php?opt="+caso+"&dnombre="+valor,true);
    
ajax.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    
    
ajax.onreadystatechange = function() {
        if (
ajax.readystate == 4) {
            
divContent.innerHTML ajax.responseText;
        }
    }
    
ajax.send(null);

Aqui la parte del archivo que hace el proceso:
Código PHP:
case "distg":
    
$con "<span id='content_menu'>Mantenimiento de Distritos</span><br />";
    
$con .= "<span id='menu_content'>";
    
$con .= "  <a href=\"javascript:show_content('dist')\">Ver Lista</a> | <a href=\"javascript:show_content('distn')\">Nuevo</a>";
    
$con .= "</span><br /><br />";
    
$con .= "<div id='grid_puertos'>";
    if (isset(
$_GET["dnombre"])) {
        
$dnombre $_GET["dnombre"];
        
$rs $inicl->consult("SELECT dis_nome FROM distritos WHERE dis_nome = '".$dnombre."'");
        
$nr $inicl->numberRows($rs);
        if (
$nr 0) {
            
$con .= "EL distrito que intenta agregar ya existe.";
        }
        else {
            
$con .= "Esta lista para guardar.";
            
$rsg $inicl->consult("INSERT INTO distritos (dis_nome) VALUES ('".$dnombre."')");
            if (
$rsg) {
                
$con .= "El ingreso fue un &eacute;xito.";
            }
        }
    }
    echo 
$con;
    break; 
Porque se queda en e mensaje de "Procesando"?, por cierto luego cuando yo quiero ver la Grilla con los datos ingresados si aparece el dato ingresado.
__________________
El aprendiz.
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 12:01.