Tengo un código que añade elementos a una lista.
Funciona en jquery pero no en jqueryMobile. En este último añade el elemento pero inmediatamente recarga la página, por lo que se pierde.
Os pongo el código:
lista.php
Código HTML:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- Si utilizo estas librerías de jquery, sí que funciona <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script> --> <!-- Cuando utilizo jqueryMobile, NO FUNCIONA --> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile.structure-1.2.0.min.css" /> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <div data-role="page" id="tareas"> <div data-role="content"> <div id="wrapper"> <h1>Lista de tareas</h1> <ul id="lista" data-role="listview"> <li id="Línea 1">Línea 1</li> </ul> <BR><BR> <form id="formulario" method="post"> <input type="text" id="campo-nombre" name="nombre" placeholder="Nuevo elemento"> </form> </div> </div> </div> <script> $(function(){ var formulario = $('#formulario'), lista = $('#lista'); formulario.on('submit',function(evento){ evento.preventDefault(); var nombre = $('#campo-nombre').val(); $('#campo-nombre').val(''); $.ajax({ type: 'POST', url: 'insertar.php', dataType: 'json', data: { nombre: nombre, }, success: function (devolver){ if (devolver.valor){ $('<li>',{ id : devolver.valor, text: nombre, }).hide().appendTo($('#lista')).fadeIn(2000); } } }); }); }); </script> </body> </html>
Código PHP:
<?php
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')){
$devolver = null;
$nombre = $_POST['nombre'];
$devolver = array ('valor' => $nombre);
if ($devolver)
echo json_encode($devolver);
}
?>
Gracias!
Javi.