Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $.post以在中显示带有for的表_Javascript_Jquery_Arrays_Json_Html Table - Fatal编程技术网

Javascript $.post以在中显示带有for的表

Javascript $.post以在中显示带有for的表,javascript,jquery,arrays,json,html-table,Javascript,Jquery,Arrays,Json,Html Table,我试图显示一个带有jsonObject响应的表,使用loop for,以objetosterona.Propiedad_Msg开头,它总是不为null,所以表中的行不显示任何内容,而只显示列 我没有使用AJAX。 这是我的密码。 $.post("ListaUser.php", { IdPost: DatosJson }, function(objetosRetorna){ for (var i in objetosReto

我试图显示一个带有jsonObject响应的表,使用loop for,以objetosterona.Propiedad_Msg开头,它总是不为null,所以表中的行不显示任何内容,而只显示列 我没有使用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");
多谢各位。 希望有人能帮助我

更新。。。。TypeError:objetosterona.map不是函数[Saber más]index.php:62:30

功能(Objetosterna){
var rows=objetosterona.map(函数(objeto){
如果(objeto.Propiedad_Msg=='Null'){
返回“”+
“Eliminar”+
“+objeto.Prop_titulo+”+
“”+objeto.Prop_propiedad+“”+
“”+objeto.Prop_categoria+“”+
“”+objeto.Prop_目录+“”+
“+objeto.Prop_colonia+”+
“”+objeto.Prop_coordenadas+“”+
“”+objeto.Prop_superficie+“”+
“”+objeto.Prop_recamaras+“”+
“”+objeto.Prop_imagenes+“”+
“”+objeto.Prop_precio+“”+
“”+objeto.Prop_antiguedad+“”+
“”+objeto.Prop_fecha+“”+
“”+objeto.Prop_description+“”+
“”+objeto.Prop\u Prop\u id+“”+
"";
} 
返回“”+
“”+objeto.Propiedad_Msg+“”+
"";
});
$(“#tabla tbody”).html(rows.join(“”);
}
);

您需要引用正在循环的条目。而不是

for (var i in objetosRetorna){
    if(objetosRetorna.Propiedad_Msg=='Null'){
你会想要

for (var i in objetosRetorna){
    if(objetosRetorna[i].Propiedad_Msg=='Null'){
    // --------------^^^
您在以后使用
objetosterona.Prop_id
时犯了几次同样的小错误

但是
for in
不是循环数组的正确方法。是的,但这里我可能会使用
forEach

还有,不相关,但你有

if (objetosRetorna.Propiedad_Msg == 'Null') {
然后紧接着

if (objetosRetorna.Propiedad_Msg != 'Null') {
在这种情况下,您可以使用
else
来避免重复出现这种情况的维护问题

添加每一行时,您还将删除表中的所有内容,这意味着您将只得到最后一行。因此,让我们使用
map
来返回行字符串数组,而不是
forEach

综上所述(请参见
***
注释):

$.post(“ListaUser.php”{
IdPost:DatosJson
},
功能(Objetosterna){
//***注意使用'map'为每行获取字符串
var rows=objetosterona.map(函数(objecto){//***我们将每个条目作为`objecto`参数接收
//将'objeto'用于下列各项
如果(objeto.Propiedad_Msg=='Null'){
返回“”+
“Eliminar”+
“+objetos.Prop_titulo+”+
“”+objetos.Prop_propiedad+“”+
“”+objetos.Prop_categoria+“”+
“”+objetos.Prop_direccion+“”+
“”+objetos.Prop_colonia+“”+
“”+objetos.Prop_coordenadas+“”+
“”+objetos.Prop_superficie+“”+
“+objetos.Prop_recamaras+”+
“”+objetos.Prop_imagenes+“”+
“”+objetos.Prop_precio+“”+
“”+objetos.Prop_antiguedad+“”+
“+objetos.Prop\u fecha+”+
“”+objetos.Prop_description+“”+
“”+objetos.Prop\u Prop\u id+“”+
"";
}
//它不是空的
返回“”+
“”+objeto.Propiedad_Msg+“”+
"";
});
//***现在我们用字符串替换表内容(合并为一个字符串)
$(“#tabla tbody”).html(rows.join(“”);
}
);

JavaScript中的对象{}没有方法.map(),它仅用于数组[]

因此,为了让代码正常工作,请将data.map()更改为data.props.map()

以及json对以下内容的响应

{"props":[
{"Prop_id":"32"},
{"Prop_titulo":"Mi titulo de propiedad"},
{"Prop_propiedad":"Casa"}, 
{"Prop_categoria":"Renta"}, 
{"Prop_direccion":"Calle Term"},
 ...]}
要阅读的内容。map()位于:

另外,如果您只想迭代json,并且可以将道具放入数组中,您可以迭代如下对象:

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

如果您需要更深入的修复或解释,请留下评论。

如果不看到服务器返回的JSON,我们将无法为您提供帮助。我正在检查代码,但我不明白为什么我收到一条关于objetosterna.map不是函数的TypeError消息。
$.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(""));
    }
);
{"props":[
{"Prop_id":"32"},
{"Prop_titulo":"Mi titulo de propiedad"},
{"Prop_propiedad":"Casa"}, 
{"Prop_categoria":"Renta"}, 
{"Prop_direccion":"Calle Term"},
 ...]}
for (var key in objetosRetorna) {
  if (objetosRetorna.hasOwnProperty(key)) {
    console.log(key + " -> " + p[key]);
  }
}