Foros del Web » Programando para Internet » Jquery »

Formulario en Jquery_Mobile+PHP+AJAX

Estas en el tema de Formulario en Jquery_Mobile+PHP+AJAX en el foro de Jquery en Foros del Web. Tengo un pequeño detalle al enviar un formulario, desde ayer estoy aprendiendo a realizar aplicaciones para teléfonos móviles y, debido a incompatibilidades con el navegador ...
  #1 (permalink)  
Antiguo 03/11/2011, 08:51
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 14 años, 5 meses
Puntos: 21
Formulario en Jquery_Mobile+PHP+AJAX

Tengo un pequeño detalle al enviar un formulario, desde ayer estoy aprendiendo a realizar aplicaciones para teléfonos móviles y, debido a incompatibilidades con el navegador del Blackberry con el jCalendar, estoy aprendiendo a utilizar la librería jQuery_Mobile, y me ha gustado muchísimo la forma de trabajarla...

El problema:

Tengo este formulario
Código HTML:
Ver original
  1. <div data-role="content">
  2.             <form method="post" action="analizar.php" name="form1" id="form1">
  3.                 <div id="login" data-role="fieldcontain">  
  4.                
  5.                     <label id="usuario1" for="usuario">usuario</label>  
  6.                     <select name="usuario" id="usuario" tabindex="1">
  7.                     <?
  8.                      include('conexion.php');
  9.                      conectar();
  10.                      $sql="select usuario from usuarios where TRUE";
  11.                      $conex= pg_query($sql);
  12.                      while($reg=pg_fetch_object($conex)){
  13.                      ?>
  14.                      <option value="<?= $reg->usuario ?>"><? echo $reg->usuario; ?></option>
  15.                      <? }
  16.                      desconectar();?>
  17.                     </select>
  18.                 </div>  
  19.                 <div id="login" data-role="fieldcontain">  
  20.                     <label for="password">password</label>  
  21.                     <input id="password" name="password" type="password" />  
  22.                 </div>  
  23.                 <div id="login" data-role="fieldcontain">  
  24.                     <label for="Enviar"></label>  
  25.                     <input id="enviar" name="enviar" type="submit" value="enviar" onSubmit="javascript:enviar();"/>  
  26.                 </div>  
  27.             </form>
  28.  
  29.         </div>
Intenté utilizar ajax
Código Javascript:
Ver original
  1. <script>
  2.             function enviar()
  3.             {
  4.                 var ajax= nuevoajax();
  5.                 var user=document.getElementById('usuario').value;
  6.                 var pass=document.getElementById('password').value;
  7.                             ajax.open("POST","analizar.php",true);
  8.                 ajax.send("usuario="+user+"&password"+pass);
  9.             }
  10.             </script>
Y este es el código de analizar.php
Código PHP:
Ver original
  1. <?
  2.  
  3. $user=$_POST['name'];
  4. $pass=$_POST['password'];
  5.  
  6. echo $user." ".$pass." ";
  7. ?>

Y obtengo este mensaje en el navegador:
undefined


Por lo tanto, ¿Qué estoy haciendo mal?
  #2 (permalink)  
Antiguo 03/11/2011, 09:28
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 14 años, 5 meses
Puntos: 21
Respuesta: Formulario en Jquery_Mobile+PHP+AJAX

He probado con este método de jQueryMobile

Código Javascript:
Ver original
  1. +
  2. $.mobile.changePage( "analizar.php", {
  3.     type: "post",
  4.     data: $("form1").serialize()
  5. });

Y me sigue apareciendo el mismo mensaje
  #3 (permalink)  
Antiguo 03/11/2011, 12:47
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 14 años, 5 meses
Puntos: 21
Respuesta: Formulario en Jquery_Mobile+PHP+AJAX

Bueno, me auto-respondo ^^

Después de revisar y tratar de traducir el inglés encontré esto en la documentación

Cita:
Note: Calling jqmData() with no argument will return undefined. This behavior is subject to change in future versions.
Así quedó la página index.php
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <head>
  3.     <title>JQuery Mobile</title>
  4.     <!-- Librerías necesarias para JQM-->
  5.     <link href="jquery.mobile-1.0rc2.css" rel="stylesheet" type="text/css" />
  6.     <script src="jquery-1.6.4.min.js"></script>
  7.     <script src="jquery.mobile-1.0rc2.min.js"></script>
  8.    
  9.    <script type="text/javascript" language="javascript">
  10.         function nuevoAjax()
  11.         {
  12.         /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
  13.         lo que se puede copiar tal como esta aqui */
  14.         var xmlhttp=false;
  15.         try
  16.         {
  17.             // Creacion del objeto AJAX para navegadores no IE
  18.             xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  19.         }
  20.         catch(e)
  21.         {
  22.             try
  23.             {
  24.                 // Creacion del objet AJAX para IE
  25.                 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  26.             }
  27.             catch(E)
  28.             {
  29.                 if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
  30.             }
  31.         }
  32.         return xmlhttp;
  33.     }
  34.     </script>    
  35.     <!-- Fin librerías necesarias -->
  36. </head>
  37. <body>
  38.     <div data-role="page" id="principal" data-theme="c" data-content-theme="e">
  39.  
  40.         <div data-role="header">
  41.             <h1>JQuery Mobile</h1>
  42.         </div>
  43.  
  44.         <div data-role="content">
  45.             <p>Contenido</p>
  46.             <p>Ir a la <a href="#seccion2">segunda página</a></p>
  47.             <p>Ir a la <a href="#seccion3">tercer página</a></p>
  48.         </div>
  49.  
  50.         <div data-role="footer">
  51.             <h4>El pié</h4>
  52.         </div>
  53.        
  54.     </div>
  55.    
  56.     <div data-role="page" id="seccion2" data-theme="b" data-content-theme="b" >
  57.         <div data-role="header">
  58.             <h1>Segunda Página</h1>
  59.         </div>
  60.         <a href="index.php" data-role="button" data-theme="b" data-icon="home" data-inline="true">Inicio</a>           
  61.  
  62.         <div data-role="content">
  63.             <form action="analizar.php" name="form1" id="form1" target="_new">
  64.                 <div id="login" data-role="fieldcontain">  
  65.                
  66.                     <label id="usuario1" for="usuario">usuario</label>  
  67.                     <select name="usuario" id="usuario" tabindex="1">
  68.                     <?
  69.                      include('conexion.php');
  70.                      conectar();
  71.                      $sql="select usuario from usuarios where TRUE";
  72.                      $conex= pg_query($sql);
  73.                      while($reg=pg_fetch_object($conex)){
  74.                      ?>
  75.                      <option value="<?= $reg->usuario ?>"><? echo $reg->usuario; ?></option>
  76.                      <? }
  77.                      desconectar();?>
  78.                     </select>
  79.                 </div>  
  80.                 <div id="login" data-role="fieldcontain">  
  81.                     <label for="password">password</label>  
  82.                     <input id="password" name="password" type="password" />  
  83.                 </div>  
  84.                 <div id="login" data-role="fieldcontain">  
  85.                     <label for="Enviar"></label>  
  86.                     <input id="enviar" name="enviar" type="submit" value="enviar" onSubmit="javascript:enviar();"/>  
  87.                 </div>  
  88.             </form>
  89.             <script>
  90.             function enviar()
  91.             {
  92.                 $.ajax({
  93.                 type: "GET",
  94.                  url: "index.php#seccion2",
  95.                 data: ("#form1").serialize()   
  96.                 });        
  97.             }
  98.             </script>
  99.         </div>
  100.  
  101.         <div data-role="footer">
  102.             <h4>Control de Calidad</h4>
  103.         </div>
  104.         <div data-role="collapsible" data-theme="a" data-content-theme="a">
  105.         <h3>Datos</h3>
  106.         <p>
  107.             <?
  108.             if ((!empty($_GET['usuario'])) &&(!empty($_GET['password'])))
  109.             {
  110.                 echo "<div data-role='fieldcontain'>";
  111.                 echo "<div id='pass' data-role='fieldcontain'>  
  112.                     <label for='password'>$password</label>  
  113.                     <input id='password' name='password' type='password' />  
  114.                 </div>  
  115. ";
  116.                 echo "</div>";
  117.             }
  118.             ?>
  119.         </p>
  120.         </div>
  121.     </div> 
  122.  
  123.     <div data-role="page" id="seccion3">
  124.  
  125.         <div data-role="header">
  126.             <h1>Tutorial JQuery Mobile: Tercera Página</h1>
  127.         </div>
  128.  
  129.         <div data-role="content">
  130.  
  131.  
  132.             <div class="demo">
  133.  
  134.                 <p>
  135.                     <label for="fecha">Fecha: </label>
  136.                     <input type="text" name="fecha" class="campofecha" size="12">
  137.                 </p>
  138.  
  139.             </div><!-- Fin demo -->
  140.             <div data-role="fieldcontain">
  141.             <fieldset data-role="controlgroup" data-type="horizontal">
  142.                 <legend>Fecha</legend>
  143.                 <label for="select-choice-month" class="select">Mes</label>
  144.                     <select name="select-choice-month" id="select-choice-month">
  145.                         <option>Mes</option>
  146.                       <option value="1">Enero</option>
  147.                       <option value="2">Febrero</option>
  148.                       <option value="3">Marzo</option>
  149.                       <option value="4">Abril</option>
  150.                       <option value="5">Mayo</option>
  151.                       <option value="6">Junio</option>
  152.                       <option value="7">Julio</option>
  153.                       <option value="8">Agosto</option>
  154.                       <option value="9">Septiembre</option>
  155.                       <option value="10">Octubre</option>
  156.                       <option value="11">Noviembre</option>
  157.                       <option value="12">Diciembre</option>
  158.                         <!-- etc. -->
  159.                     </select>
  160.                     <label for="select-choice-day">Dia</label>
  161.                     <select name="select-choice-day" id="select-choice-day">
  162.                           <option>Day</option>
  163.                           <option value="1">1</option>
  164.                           <option value="2">2</option>
  165.                           <option value="3">3</option>
  166.                           <option value="4">4</option>
  167.                           <option value="5">5</option>
  168.                           <option value="6">6</option>
  169.                           <option value="7">7</option>
  170.                           <option value="8">8</option>
  171.                           <option value="9">9</option>
  172.                           <option value="10">10</option>
  173.                           <option value="11">11</option>
  174.                           <option value="12">12</option>
  175.                           <option value="13">13</option>
  176.                           <option value="14">14</option>
  177.                           <option value="15">15</option>
  178.                           <option value="16">16</option>
  179.                           <option value="17">17</option>
  180.                           <option value="18">18</option>
  181.                           <option value="19">19</option>
  182.                           <option value="20">20</option>
  183.                           <option value="21">21</option>
  184.                           <option value="22">22</option>
  185.                           <option value="23">23</option>
  186.                           <option value="24">24</option>
  187.                           <option value="25">25</option>
  188.                           <option value="26">26</option>
  189.                           <option value="27">27</option>
  190.                           <option value="28">28</option>
  191.                           <option value="29">29</option>
  192.                           <option value="30">30</option>
  193.                           <option value="31">31</option>          
  194.                     </select>
  195.                 <label for="select-choice-year">Año</label>
  196.                     <select name="select-choice-year" id="select-choice-year">
  197.                         <option>Year</option>
  198.                         <option value="2011">2011</option>
  199.                     </select>
  200.             </fieldset>
  201.             </div>
  202.         </div><!--- End Content --->
  203.         <div data-role="footer">
  204.             <h4>El pie</h4>
  205.         </div>
  206.        
  207.     </div> 
  208.  
  209. </body>
  210. </html>

Y así quedó la página analizar.php
Código HTML:
Ver original
  1. <?
  2. //session_start();
  3. $user2=$_GET['usuario'];
  4. $pass2=$_GET['password'];
  5.  
  6. echo $user2."2 ".$pass2."2 ";
  7. include('conexion.php');
  8. conectar();
  9.  
  10. $sql="select * from usuarios where usuario = '$user2' and password = '$pass2'";
  11. $conex=pg_query($sql);
  12. desconectar();
  13.  
  14. ?>
  15. <!DOCTYPE html>
  16.     <head>
  17.     <title>JQuery Mobile</title>
  18.     <!-- Librerías necesarias para JQM-->
  19.     <link href="jquery.mobile-1.0rc2.css" rel="stylesheet" type="text/css" />
  20.     <script src="jquery-1.6.4.min.js"></script>
  21.     <script src="jquery.mobile-1.0rc2.min.js"></script>
  22.    <link href="calendario_dw-estilos.css" type="text/css" rel="STYLESHEET">
  23.    <script type="text/javascript" src="calendario.js"></script>
  24.    
  25. <body>
  26.     <div data-role="page" id="principal">
  27.  
  28.         <div data-role="header">
  29.             <h1>JQuery Mobile</h1>
  30.         </div>
  31.  
  32.         <div data-role="content">
  33.         <a href="index.php" data-role="button" data-theme="a" data-icon="home" data-inline="true">Inicio</a>           
  34.         <a href="index.php#seccion2" data-role="button" data-theme="b" data-icon="home" data-inline="true" onClick="$.jqmRemovedata;">P&aacute;gina 2</a>          
  35.         <a href="index.php#seccion3" data-role="button" data-theme="c" data-icon="home" data-inline="true" onClick="$.jqmRemovedata;">P&aacute;gina 3</a>          
  36.            
  37.             <p>Datos</p>
  38.             <table>
  39.                 <tr>
  40.                     <td><p>Nombre</p></td>
  41.                     <td><p>Usuario</p></td>
  42.                 </tr>
  43.                 <div class="ui-grid-b">
  44.           <tr><?
  45.                if(pg_num_rows($conex))
  46.                 {
  47.                     while($registro=pg_fetch_object($conex))
  48.                     {
  49.                         ?>
  50.                         <div class="ui-block-a"><td><? echo $registro->usuario;?></td></div>
  51.                         <div class="ui-block-a"><td><? echo $registro->password; ?> </td></div>
  52.                         <?
  53.                     }
  54.                 }
  55.                 ?>
  56.                 </tr>
  57.                 </div>
  58.             </table>
  59.             <p>Ir a la <a href="index.php">indice</a></p>
  60.         </div>
  61.  
  62.         <div data-role="footer">
  63.             <h4>Pi&eacute; de P&aacute;gina</h4>
  64.         </div>
  65.        
  66.     </div>
  67. </body>
  #4 (permalink)  
Antiguo 08/05/2012, 02:49
 
Fecha de Ingreso: abril-2012
Mensajes: 16
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Formulario en Jquery_Mobile+PHP+AJAX

Hola, que tal, viendo tu post algunas de las dudas que tenia se resolvieron pero no todas xD. Mira tengo el siguiente codigo:

<!DOCTYPE html>

<html>
<head>

<title>CCMI. Jesús Usón</title>

<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script src="js/main.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
<script type="text/javascript" src="jfeed/build/dist/jquery.jfeed.pack.js"></script>

</head>
<body onload="init()">
<section id="page1" data-role="page" data-theme="b">
<header data-role="header" data-theme="b">
<h1>CCMI. JESÚS USÓN</h1>
</header>
</br></br>
<a href="http://www.ccmijesususon.com">
<div align="center"><img src="ccmi.gif"></a></div>
<br/><br/>
<div align="center"/><a href="page2" data-icon="star" data-role="button" data-inline="true" data-transition="pop" >News</a>
<div align="center"/><a href="page3" data-icon="star" data-role="button" data-inline="true" data-transition="flip" >News</a>
<div align="center"/><a href="page2" data-icon="star" data-role="button" data-inline="true" >News</a>
<div align="center"/><a href="page2" data-icon="star" data-role="button" data-inline="true" >News</a>
</br></br></br></br></br></br></br>
<footer data-role="footer" data-theme="b">
<h2>CCMI</h2>
</footer>
</section>
<section id="page2" data-role="page" data-theme="b">
<header data-role="header">
<h1>CCMI. JESÚS USÓN</h1>
</header>

<div data-role="content" class="content">
<ul data-role="listview" data-inset="true" data-theme="a">
<li data-role="divider" data-theme="b">Noticias</li>
<li onclick="url='http://feeds.feedburner.com/rssccmiju'"><a href="#page2-1">RSS CCMIJU</a><img src="assets/icons/rss.png" class="ui-li-icon"></li>
<li onclick="url='http://feeds.feedburner.com/ccmijupublicaciones'"><a href="#page2-1">Publicaciones</a><img src="assets/icons/rss.png" class="ui-li-icon"></li>
<li onclick="url='http://feeds.feedburner.com/ccmijucursos'"><a href="#page2-1">Cursos</a><img src="assets/icons/rss.png" class="ui-li-icon"></li>
<li onclick="url='http://feeds.feedburner.com/ccmijunoticias'"><a href="#page2-1">Noticias</a><img src="assets/icons/rss.png" class="ui-li-icon"></li>
</ul>
</div>
<footer data-role="footer" data-theme="b">
<h2>CCMI</h2>
</footer>
</section>
<section id="page2-1" data-role="page" data-theme="b">
<header data-role="header">
<h1>CCMI. JESÚS USÓN</h1>
</header>
<div data-role="content" class="content"/>
<ul data-role="listview" data-inset="true" data-theme="a">
</ul>
</div>
</section>
<section id="page3" data-role="page" data-theme="b">
<header data-role="header">
<h1>Formulario</h1>
</header>
<div data-role="fieldcontain">
<label for="name"><b>Nombre:</b></label>
<input type="text" name="name" id="name" value="" />
</div>
<div data-role="fieldcontain">
<label for="textarea"><b>Localidad:</b></label>
<textarea cols="40" rows="8" name="textarea" id="textarea"></textarea>
</div>
<div data-role="fieldcontain">
<label for="search"><b>Busqueda de entrada:</b></label>
<input type="search" name="password" id="search" value="" />
</div>
<div class="containing-element">
<label for="flip-min">Cambiar:</label>
<select name="slider" id="flip-min" data-role="slider" data-theme="c">
<option value="off">Off</option>
<option value="on">On</option>
</select>
</div>
<div data-role="fieldcontain">
<label for="slider"><b>Slider:</b></label>
<input type="range" name="slider" id="slider" value="50" min="0" max="100" data-highlight="true" data-theme="c" />
</div>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend><b>Elige aperitivo:</b></legend>
<input type="checkbox" name="checkbox-1a" id="checkbox-1a" class="custom" data-theme="c" />
<label for="checkbox-1a">Cheetos</label>

<input type="checkbox" name="checkbox-2a" id="checkbox-2a" class="custom" data-theme="c" />
<label for="checkbox-2a">Doritos</label>

<input type="checkbox" name="checkbox-3a" id="checkbox-3a" class="custom" data-theme="c" />
<label for="checkbox-3a">Fritos</label>

<input type="checkbox" name="checkbox-4a" id="checkbox-4a" class="custom" data-theme="c" />
<label for="checkbox-4a">Sun Chips</label>
</fieldset>
</div>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-type="horizontal">
<legend><b>Estilo de la fuente:</b></legend>
<input type="checkbox" name="checkbox-6" id="checkbox-6" class="custom" data-theme="c" />
<label for="checkbox-6">b</label>

<input type="checkbox" name="checkbox-7" id="checkbox-7" class="custom" data-theme="c" />
<label for="checkbox-7"><em>i</em></label>

<input type="checkbox" name="checkbox-8" id="checkbox-8" class="custom" data-theme="c" />
<label for="checkbox-8">u</label>
</fieldset>
</div>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend><b>Elige una mascota:</b></legend>
<input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked" data-theme="c" />
<label for="radio-choice-1">Gato</label>

<input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2" data-theme="c" />
<label for="radio-choice-2">Perro</label>

<input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3" data-theme="c" />
<label for="radio-choice-3">Hamster</label>

<input type="radio" name="radio-choice-1" id="radio-choice-4" value="choice-4" data-theme="c" />
<label for="radio-choice-4">Lagarto</label>
</fieldset>
</div>
<div data-role="fieldcontain">
<label for="select-choice-1" class="select"><b>Elige el metodo de envio:</b></label>
<select name="select-choice-1" id="select-choice-1" data-theme="c" >
<option value="standard">Standard: 7 días</option>
<option value="rush">Rush: 3 días</option>
<option value="express">Express: al siguiente día</option>
<option value="overnight">Durante la noche</option>
</select>
</div>
<div data-role="fieldcontain">
<label for="select-choice-a" class="select"><b>Elige el metodo de envio:</b></label>
<select name="select-choice-a" id="select-choice-a" data-native-menu="false" data-theme="c">
<option>Ejemplo de menú personalizado</option>
<option value="standard">Standard: 7 días</option>
<option value="rush">Rush: 3 días</option>
<option value="express">Express: al siguiente día</option>
<option value="overnight">Durante la noche</option>
</select>
</div>
<div class="ui-body ui-body-b">
<fieldset class="ui-grid-a">
<div class="ui-block-a"><button type="submit" data-theme="d">Cancelar</button></div>
<div class="ui-block-b"><button type="submit" data-theme="a">Presentar</button></div>
</fieldset>
</div>
</section>
</div>
</body>
</html>

Mi pregunta es la siguiente, como valido ese formulario en JQuery mobile, porque creo que ya me estoy volviendo loco y necesito ayuda xD
Muchas gracias

Etiquetas: ajax, formulario, funcion, php
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 17:39.