Comunidad de diseño web y desarrollo en internet online

enviar un formulario con ajax

Citar            
MensajeEscrito el 08 Nov 2011 06:56 pm
:) Buenas tardes desde Venezuela, bueno tengo un inconveniente como lo dice el asunto estoy intentando hacer varias cosas con AJAX, o bueno de manera asíncrona, tengo pocos conocimientos, aquí explico las cosas que quiero hacer.

Primero que nada uso este script para poder abrir paginas dentro de un DIV llamado contenido, para que de esta manera no me cargue una y otra vez.


Código Javascript :

<script type="text/javascript">
function ajaxFunction() {
  var xmlHttp;  
  try {   
    xmlHttp=new XMLHttpRequest();
    return xmlHttp;
  } catch (e) {
    
    try {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      return xmlHttp;
    } catch (e) {
      
     try {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        return xmlHttp;
      } catch (e) {
        alert("Tu navegador no soporta AJAX!");
        return false;
      }}}
}
function Enviar(_pagina,capa) {
    var ajax;
    ajax = ajaxFunction();
    ajax.open("POST", _pagina, true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    ajax.onreadystatechange = function() {
      if (ajax.readyState==1){
         document.getElementById(capa).innerHTML = " Aguarde por favor...";
              }
      if (ajax.readyState == 4) {         
                document.getElementById(capa).innerHTML=ajax.responseText; 
           }}          
   ajax.send(null);
}
</script>


La manera de lograr esto es haciendo este tipo de enlaces:

Código HTML :

<a href="javascript:Enviar('php/sitio_rep_new.php','contenido')">Crear Sitio de Repeticion</a>


hasta aqui vamos bien, ahora yo utilizo DREAMWEAVER CS5, con el cual puedo hacer una vinculacion para obtener una consulta de mi base de datos. lo que quiero hacer es un buscador de los datos de mi base de datos. aqui esta lo que intente hacer.

Código HTML :

<?php require_once('../Connections/conexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_buscar")) {
   
   $selectSQL = "SELECT * FROM equipos WHERE nombre='".$_POST['nombre']."'";
    mysql_select_db($database_conexion, $conexion);
   $Result1 = mysql_query($selectSQL, $conexion) or die(mysql_error());
                  //echo $selectSQL;
                  $rows = mysql_fetch_row($Result1);
                  //si consigue el dato lo guardamos en una variable.
                  $nombre= $rows[1];
                  $marca= $rows[2];
                  $modelo= $rows[3];
                  $serial= $rows[4];
   
 
   if ($rows != false){
         
      $resultado=TRUE;
      } else if ($rows = false){
      $resultado=FALSE;
         
         }
   
   }



mysql_select_db($database_conexion, $conexion);
$query_Recordset1 = "SELECT * FROM equipos";
$Recordset1 = mysql_query($query_Recordset1, $conexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div id="buscar" class="buscar">
<form id="form_buscar" name="form_buscar" method="post" action="buscar_ficha.php?nombre=<?php echo $row_Recordset1['nombre']; ?>">
  <label for="textfield"></label>
  <input type="text" name="nombre" id="nombre">
   <input type="hidden" name="MM_insert" value="form_buscar" />
  <input type="submit" name="button" id="button" value="Buscar" />
</form>
</div>
<?php if ($resultado=TRUE){
   
   ?>
    
   <div id="resultado" class="resultado">
<?php   
        echo'Nombre: &nbsp;  '. $nombre; echo '<br>';
      echo'Marca:   &nbsp; '. $marca;  echo '<br>';
      echo'Modelo:  &nbsp; '. $modelo; echo '<br>';
      echo'Serial:  &nbsp; '. $serial; echo '<br>';
 ?>
</div>
   <?php }else if ($resultado=FALSE) {?>
<div id="resultado" class="resultado">
      <?php echo "no se encontro registros"; ?>
</div>
      
        <?php } ?>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

Obvio el buscador funciona perfecto pero me manda a una nueva pagina y es lo que quiero evitar, quiero que la búsqueda se ejecute sin ir a otro sitio, pero la verdad e intentado varias cosas y no le veo solución, si me echan una mano se los agradecería enormemente, saludos.

Por simplepanas

20 de clabLevel



Genero:Masculino  

ing sistemas

chrome
Citar            
MensajeEscrito el 09 Nov 2011 01:05 am
Esto es lo que debes cambiar:

Código Javascript :

<a href="Enviar('php/sitio_rep_new.php','contenido'); return false;">Crear Sitio de Repeticion</a>

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 10 Nov 2011 02:06 pm
eso lo tengo que cambiar ? pero no entiendo en que me ayuda un return false? y muchas gracias por tu respuesta. =D

Por simplepanas

20 de clabLevel



Genero:Masculino  

ing sistemas

chrome
Citar            
MensajeEscrito el 10 Nov 2011 04:38 pm
Me pasa por leer a las apuradas...
Ahora caigo en la cuenta que tienes mal la llamada a la función, debe ser así:

Código Javascript :

<a href="#" onClick="Enviar('php/sitio_rep_new.php','contenido'); return false;">Crear Sitio de Repeticion</a>

El "return false" evita que el navegador haga lo que normalmente haría con un tag <a>: ir a la URL apuntada por href. Tú lo único que quieres es ejecutar la función, nada más.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.