2015-11-05 90 views
1

我想使用phonegap使应用程序。我试图做一个选择使用PHP返回结果到ajax函数并打印结果...但我不知道我是否正确,我需要把我的HTML代码放在显示结果。试图从php接收json和ajax并打印结果在HTML

Ajax代码:

$(document).ready(function() { 

$.ajax({ 

    url : 'http://ip/again/www/index.php', 

    dataType : "json", 

    success : function(data){ 

     var html = ""; 


     for($i=0; $i < data.length; $i++){ 

      html += "<strong>Nome:</strong> "+data[$i].nome +" "+ 
      data[$i].sobreNome; 

      html += " <strong>Cidade:</strong> "+data[$i].cidade; 

      html += "<br />"; 
     } 


     $('body').html(html); 
     } 
    }); 
    }); 
</script> 

PHP代码:

<?php 
$hostname = 'localhost'; 
$username = 'root'; 
$password = 'pass'; 
$database = 'mydb'; 

try { 
$pdo = new PDO("mysql:host=$hostname;dbname=$database", $username, 
$password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
    //echo 'Conexao efetuada com sucesso!'; 
} 
catch(PDOException $e) 
{ 
    echo $e->getMessage(); 
} 

$sql = 'SELECT * FROM incidente ORDER BY codigo' ; 


try { 

$recebeConexao = $pdo->prepare($sql); 

$recebeConexao->execute(); 

$result = $recebeConexao->fetchAll(); 


if (count($result)) { 
foreach($result as $row) { 
    $incid=$row; 
     echo (json_encode($incid)); 

} 
} else { 
$incid=0; 
} 


} catch (PDOException $ex) { 
echo "Erro no Banco"; 
} 

?> 
+0

有什么问题或错误你是目前正在看?您的帖子中没有足够的信息来帮助您。你的AJAX请求返回了吗?如果是的话,答复的内容是什么? – thatidiotguy

+0

我的AJAX没有返回任何响应...我的PHP返回类似于:{“codigo”:“61”,“0”:“61”,“nome”:“kelly”,“1”:“kelly”, “sobrenome”:“kinder”,“2”:“kinder”,“cidade”:“rio”,“3”:“rio”} {“codigo”:“62”,“0”:“62” “nome”:“jack”,“1”:“jack”,“sobrenome”:“jones”,“2”:“jones”,“cidade”:“bh”,“3”:“bh”} –

回答

0

你错误地写for循环。你必须与var关键字声明你的变量,像这样:

for(var $i = 0; $i < data.length; $i++) { 
    // ... 
} 

因为你的脚本不返回数组,该length属性将不可用。

当您使用Javascript处理对象时,您将需要使用for...in语法(making sure to validate that the property belongs to the object you're iterating over)。

但是,您提供的代码不会返回对象或数组,因为JSON格式不正确。

一个API的正确方法返回多个,无序的JavaScript对象将他们包裹在一个数组,像这样:

if(count($result)) { 
    $list = array(); 

    foreach($result as $row) { 
     $list[] = $row; 
    } 

    echo json_encode($list); 
} 
$.ajax({ 
    // ... 
    success: function (data) { 
     // Loop over each object, since your script should ideally return an array 
     for (var $i = 0; $i < data.length; $i++) { 
      var object = data[$i]; 

      html += '<strong>Nome:</strong> ' + object.nome + ' ' + object.sobreNome; 

      // etc... 
     } 
    } 
}); 
+0

改变了我的代码,但仍然没有发生......屏幕仍然是白色的,我想打印“nome”,“sobrenome”,“cidade”的结果。但是,谢谢:) –

+0

当你使用这种方法时,你会得到什么回应?你在PHP或Javascript中看到任何错误消息吗? – P810

+0

不,我没有看到任何错误消息...我的PHP的作品,但我的ajax功能不工作... –