Resulta que estoy llamando a un archivo .txt con php a un list (en jquery mobile) a la cual le aplicare Sortable con jquery UI. Cuando escribo directamente el nombre
del fichero que quiero que lea va todo bien , me lee el archivo me muestra las lineas en la lista y puedo moverlas con el sortable .
El problema surge cuando intento enviar el nombre del fichero por POST . Cuando envio hago eso el sortable no se activa y no puedo mover las lineas siendo que si me reconoce el archivo y ademas me muestra su contenido.
Si alguien sabe como solucionarlo se lo agradeceria. Si no se entiende la idea me avisan.
De antemano gracias
Adjunto los codigos
1.- El envio del fichero hacia la pagina php
Código PHP:
<html>
<head>
<link rel="stylesheet" href="jquery/jqueryMobile/jquery.mobile-1.4.5.min.css" />
<script src="jquery/jqueryMobile/jquery-2.1.1.min.js"></script>
<script src="jquery/jqueryMobile/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<div data-role="page" data-theme="a">
<div data-role="header">
</div>
<div data-role="content" data-ajax="false">
<form role="form" action="../leerfichero.php" method="post" enctype="multipart/form-data">
<select name="listarchivo" >
<?php
$dir = opendir("../apll/archicos/");
while (false !== $archivo=readdir($dir)){
if ($entrada != "." && $entrada != "..") {
?>
<option value="<?php echo $archivo;?>"> <?php echo $archivo; ?> </option>
<?php
}
}
?>
<label for="basic">Text Input:</label> <input type="text" name="name" id="basic" value="" data-mini="true" />
</select>
<button type="submit" class="btn btn-primary btn-lg active">Cargar</button>
</form>
</div>
<div data-role="footer">
</div>
</div>
</body>
</html>
Aqui hago la lectura del fichero enviado anteriormente
Código PHP:
<?php
$nombre_fichero = 'pseudocodigo.txt'; //mando el nombre en forma directa
$nombre_fichero = $_POST['listarchivo']; //mandado el nombre por post.
$lineas = file($nombre_fichero); //convierte el fichero a Array.
$lineaOrd = file($nombre_fichero);
shuffle($lineas); //desordena el fichero
?>
<html>
<head>
<link rel="stylesheet" href="puzzal/jquery/jqueryMobile/jquery.mobile-1.4.5.min.css" />
<script src="puzzal/jquery/jqueryMobile/jquery-2.1.1.min.js"></script>
<script src="puzzal/jquery/jqueryMobile/jquery.mobile-1.4.5.min.js"></script>
<script src="puzzal/jquery/jquery-ui-1.11.2/jquery-ui.js"></script>
<script src="puzzal/jquery/jquery.ui.touch-punch.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#ord').sortable({
update: function(event, ui){
var s = $(this).sortable('toArray');
var ord = <?php echo json_encode($lineaOrd); ?>;
var flag=0;
for (var i = 0; i < s.length; i++) {
if (s[i]==ord[i]){
flag=1;
}else{
flag=0;
}
};
if (flag==1) {
alert("ordenado");
}else{
alert("desordenado");
}
}
});
});
</script>
</head>
<body>
<div data-role="page">
-<div data-role="header" data-tap-toggle="false">
<h1> PUZZAL </h1>
<?php //echo" Bienvenido! ";?>
</div>
<ul id="ord" data-role="listview">
<?php
foreach ($lineas as $n=>$linea) {
echo'<li id="'.$linea.'">'.$linea.'</li>';
}
?>
</ul>
</div>
<input type="submit" value="Comprobar" id="comprobar">
</div>
</body>
</html>