2016-08-12 11 views
4

私はjsonObjectレスポンスの表を表示するようにしていますが、objetosRetorna.Propiedad_Msgで始まるループを使用すると常にNULLではないため、表の行には何も表示されませんa 私はAJAXを使用していません。 ここに私のコードです。 ....

$.post("ListaUser.php", 
     { 
     IdPost: DatosJson }, 
     function(objetosRetorna){ 

      for (var i in objetosRetorna){ 
      if(objetosRetorna.Propiedad_Msg=='Null'){ 
       $("#tabla tbody").html(""); 
       var nuevaFila= 
       "<tr>" 
       +"<td><a href='NewUser.php?a=" + objetosRetorna.Prop_id + "'><button type='button' class='btn btn-default light-green lighten-1'>Editar </button></a> <button type='button' onclick='Eliminar("+objetosRetorna.Prop_id+")' class='red lighten-1 btn btn-danger '>Eliminar</button></td>" 
       +"<td>"+objetosRetorna[i].Prop_titulo+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_propiedad+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_categoria+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_direccion+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_colonia+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_coordenadas+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_superficie+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_recamaras+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_imagenes+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_precio+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_antiguedad+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_fecha+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_descripcion+"</td>" 
       +"<td>"+objetosRetorna[i].Prop_prop_id+"</td>" 
       +"</tr>"; 
       $(nuevaFila).appendTo("#tabla tbody"); 
      } 
      if (objetosRetorna.Propiedad_Msg!="Null") { 
       var nuevaFila = 
       "<tr>" 
       +"<td colspan='5'><center><font color='red'>"+objetosRetorna.Propiedad_Msg+"</font></center></td>" 
       +"</tr>"; 
       $(nuevaFila).appendTo("#tabla tbody"); 
      } 
      } 

     },"json"); 

Json Response

[{"Prop_id":"32", 
    "Prop_titulo":"Mi titulo de propiedad", 
    "Prop_propiedad":"Casa", 
    "Prop_categoria":"Renta", 
    "Prop_direccion":"Calle Term", 
    "Prop_colonia":"Progreso", 
    "Prop_coordenadas":"499965", 
    "Prop_superficie":"40m2", 
    "Prop_recamaras":"5", 
    "Prop_imagenes":"imagenes", 
    "Prop_precio":"4500","Prop_antiguedad":"15 a\u00f1os","Prop_fecha":"0000-00-00", 
    "Prop_descripcion":"Departamen","Prop_prop_id":"10", 
    "Propiedad_Msg":"Null"}....] 

ありがとうございました。 ホープ誰かがあなたがオーバーループしているエントリを参照する必要が

UPDATE.... TypeError: objetosRetorna.map is not a function[Saber más]index.php:62:30

function(objetosRetorna) { 

       var rows = objetosRetorna.map (function(objeto){ 

       if (objeto.Propiedad_Msg == 'Null') { 
      return "<tr>" + 
       "<td><a href='NewUser.php?a=" + objeto.Prop_id + "'><button type='button' class='btn btn-default light-green lighten-1'>Editar </button></a> <button type='button' onclick='Eliminar("+objeto.Prop_id+")' class='red lighten-1 btn btn-danger '>Eliminar</button></td>"+ 
       "<td>"+objeto.Prop_titulo+"</td>"+ 
       "<td>"+objeto.Prop_propiedad+"</td>"+ 
       "<td>"+objeto.Prop_categoria+"</td>"+ 
       "<td>"+objeto.Prop_direccion+"</td>"+ 
       "<td>"+objeto.Prop_colonia+"</td>"+ 
       "<td>"+objeto.Prop_coordenadas+"</td>"+ 
       "<td>"+objeto.Prop_superficie+"</td>"+ 
       "<td>"+objeto.Prop_recamaras+"</td>"+ 
       "<td>"+objeto.Prop_imagenes+"</td>"+ 
       "<td>"+objeto.Prop_precio+"</td>"+ 
       "<td>"+objeto.Prop_antiguedad+"</td>"+ 
       "<td>"+objeto.Prop_fecha+"</td>"+ 
       "<td>"+objeto.Prop_descripcion+"</td>"+ 
       "<td>"+objeto.Prop_prop_id+"</td>"+ 
       "</tr>"; 

      } 
      return "<tr>" + 
       "<td colspan='5'><center><font color='red'>"+objeto.Propiedad_Msg+"</font></center></td>"+ 
       "</tr>"; 

      }); 

     $("#tabla tbody").html(rows.join("")); 
     } 
    ); 
+0

あなたのサーバーが返すJSONを見ずにお手伝いできません。 –

答えて

0

オブジェクトは、{}、メソッドを持っていません.map()は配列[、]のみです。 ()

そして

{"props":[ 
{"Prop_id":"32"}, 
{"Prop_titulo":"Mi titulo de propiedad"}, 
{"Prop_propiedad":"Casa"}, 
{"Prop_categoria":"Renta"}, 
{"Prop_direccion":"Calle Term"}, 
...]} 

(.MAP読むために何かのようなものにJSONレスポンスを)data.props.mapためにあなたのコード(変更data.mapを動作させるためにはそう

)オン: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

ps。あなただけのJSONを反復処理したいとあなたは配列にあなたの小道具を作ることができる場合は、次のようにオブジェクトを反復処理することができます。

for (var key in objetosRetorna) { 
    if (objetosRetorna.hasOwnProperty(key)) { 
    console.log(key + " -> " + p[key]); 
    } 
} 

あなたはより詳細な修正や説明が必要な場合はコメントを残してください。

0

私を助けることができます。代わりに

for (var i in objetosRetorna){ 
    if(objetosRetorna.Propiedad_Msg=='Null'){ 

のあなたは、あなたがobjetosRetorna.Prop_id時代のカップルと後で同じ小さなミスをし

for (var i in objetosRetorna){ 
    if(objetosRetorna[i].Propiedad_Msg=='Null'){ 
    // --------------^^^ 

をしたいと思います。

,for-inは、配列をループする正しい方法ではありません。 lots of optionsがありますが、ここではおそらくforEachを使用しています。また

、関係のない、しかし、あなたは

if (objetosRetorna.Propiedad_Msg == 'Null') { 

を持っているし、すぐにそのような状況でその

if (objetosRetorna.Propiedad_Msg != 'Null') { 

後、あなただけの条件が繰り返されたのメンテナンスの問題を避けるためにelseを使用することができます。

をそれぞれローに追加すると、テーブルのすべてが削除されるため、最後のローで終了します。代わりにforEachのそれでは、行の文字列の配列を返すようにmapを使用してみましょう:

ので(***コメントを参照)一緒にすべてのことを取る:JavaScriptで

$.post("ListaUser.php", { 
     IdPost: DatosJson 
    }, 
    function(objetosRetorna) { 
     // *** Note use of `map` to get a string for each row 
     var rows = objetosRetorna.map(function(objecto) { // *** We receive each entry as the `objecto` argument 
      // Use `objeto` for the various things below 
      if (objeto.Propiedad_Msg == 'Null') { 
       return "<tr>" + 
        "<td><a href='NewUser.php?a=" + objeto.Prop_id + "'><button type='button' class='btn btn-default light-green lighten-1'>Editar </button></a> <button type='button' onclick='Eliminar(" + objeto.Prop_id + ")' class='red lighten-1 btn btn-danger '>Eliminar</button></td>" + 
        "<td>" + objetos.Prop_titulo + "</td>" + 
        "<td>" + objetos.Prop_propiedad + "</td>" + 
        "<td>" + objetos.Prop_categoria + "</td>" + 
        "<td>" + objetos.Prop_direccion + "</td>" + 
        "<td>" + objetos.Prop_colonia + "</td>" + 
        "<td>" + objetos.Prop_coordenadas + "</td>" + 
        "<td>" + objetos.Prop_superficie + "</td>" + 
        "<td>" + objetos.Prop_recamaras + "</td>" + 
        "<td>" + objetos.Prop_imagenes + "</td>" + 
        "<td>" + objetos.Prop_precio + "</td>" + 
        "<td>" + objetos.Prop_antiguedad + "</td>" + 
        "<td>" + objetos.Prop_fecha + "</td>" + 
        "<td>" + objetos.Prop_descripcion + "</td>" + 
        "<td>" + objetos.Prop_prop_id + "</td>" + 
        "</tr>"; 
      } 
      // It's not null 
      return "<tr>" + 
        "<td colspan='5'><center><font color='red'>" + objeto.Propiedad_Msg + "</font></center></td>" + 
        "</tr>"; 
     }); 
     // *** Now we replace the table contents with the strings (joined into one string) 
     $("#tabla tbody").html(rows.join("")); 
    } 
); 
+0

私は自分のコードをチェックしていましたが、なぜobjetosRetorna.mapに関するTypeError Messageを取得したのが機能ではないのか分かりません。 –

関連する問題