Incursionando en el mundo de las aplicaciones moviles compilaas con Phonegap me encuentro con un escollo dificil de sortear...
Estoy tratando de levantar informacion de un servidor web (php+mysql) a traves de ajax...
Utilizo un ejemplo practico que luego, si funciona, trabajare en la adaptacion del mismo para mostrar los datos requeridos. De momento, trabajo con el ejemplo que detallo a continuacion, para aprender la manera de conectar.
La aplicacion es simple... y consta de solo 3 archivos en la app y uno en el servidor remoto.
Lado App (Movil)
index.html
Código:
js/jquery-1.7.2.min (No necesita descripcion no?)<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
<script src="js/jquery-1.7.2.min.js"></script>
<script src="js/jquery.jsonp-2.2.0.min.js" type="text/javascript"></script>
<script src="js/load-json.js"></script>
</head>
<body>
<div id="output"></div>
</body>
</html>
ajax.js
Código:
Lado Servidor:$(document).ready(function(){
$(document).bind('deviceready', function(){
//Phonegap ready
onDeviceReady();
});
var output = $('#output');
$.ajax({
url: 'http://www.nombredemiweb.com.ar/landmarks.php',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status){
$.each(data, function(i,item){
var landmark = '<h1>'+item.name+'</h1>'
+ '<p>'+item.latitude+'<br>'
+ item.longitude+'</p>';
output.append(landmark);
});
},
error: function(err, textStatus, errorThrown) {
output.text("There was an error [" + textStatus + "] loading the data.");
console.log(err);
console.log(errorThrown);
}
});
});
landmarks.php
Código PHP:
<?php
header('Content-type: application/json');
$server = "localhost";
$username = "usuario";
$password = "clave";
$database = "database";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$sql = "SELECT id, l_name AS name, l_lat AS latitude, l_long AS longitude FROM landmarks ORDER BY l_name";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
while($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
mysql_close($con);
echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
?> Alguien ha tenido el mismo problema? Podria orientarme hacia donde debo mirar para solucionarlo? (version de jQuery, version de PHP, codigo, permisos, etc)
Aclaro que el servidor existe, y si ejecuto directamente el php remoto obtengo:
Código:
Desde ya, agradecere cualquier orientacion que me puedan dar.([{"id":"1","name":"Big Ben","latitude":"51.500600000000","longitude":"-0.124610000000"},{"id":"4","name":"Hadrian's Wall","latitude":"55.024453000000","longitude":"2.142310000000"},{"id":"2","name":"Stonehenge","latitude":"51.178850000000","longitude":"-1.826446000000"},{"id":"3","name":"White Cliffs of Dover","latitude":"51.132020000000","longitude":"1.334070000000"}]);
Saludos desde Argentina.


