Почему я не могу читать файл JSON в JS?

Я отнесся как к какой-то форме к "соединять" файл JS с одним PHP, благодаря тому, что я нуждаюсь в консультациях в BD.

Я сделал связь посредством AJAX. С JS я посылаю ему id "организации" в php посредством GET. Потом я возвращаю JS PHP файл JSON, который содержит объект с признаками, описанными в коде.

Проблема состоит, в том, что, прочитав файл JSON в JS, посредством dataJson. ID_SI например, он не дает мне никакой ошибки, но берет стоимость признака как

undefined

Нужно говорить, что, когда я печатаю alert (dataJson) в JS, он показывает правильно на экране все данные, может быть, не соглашайтесь правильной формы на признаки. Я присоединяю код обоих файлов (JS и PHP)

infoAction.php

<?php
  include 'sitioTuristico.php';

    $id = $_GET['id'];

    $sitio = new sitioTuristico($id);
    if($sitio->getID_SI()=="INEX"){
      print "INEXISTENTE";
      exit;
    }
    $response = new stdClass();

    $response->ID_SI = $sitio->getID_SI();
    $response->URL = $sitio->getURLS();
    $response->Nombre = $sitio->getNombre();
    $response->Descripcion = $sitio->getDescripcion();
    $response->Promedio_nota = $sitio->getPromedio_Nota();
    $response->Nombre_Cat = $sitio->getNombre_Cat();
    $response->Nombre_Ciu = $sitio->getNombre_Ciu();

    echo json_encode($response);

?>

info.js

$(document).ready(function(){

  //Solicita consulta y recibe los datos
  $.ajax({
    type: "GET",
    url: "php/infoAction.php",
    data: { id:loadData() },
    async: true,
    success: function(datos){
        var dataJson = datos;

        //Cambio de atributos de imágenes
        alert(dataJson.ID_SI); //Esto da error (undefined) 
        alert(dataJson);  //Esto muestra correctamente todos los valores
        $('img[name=imagenPrincipal]').attr("id",dataJson.ID_SI);
     });
2
задан 02.11.2016, 05:05
3 ответа

@Spines, потому что ты используешь eval? ошибка должна встречаться, потому что ты не убегаешь стоимость html от url, который ты приносишь с класса sitioTuristico. Следовательно, если ve код html возьмет это как попытка xss, возможно поэтому это ошибка.

Сейчас не enitendo для usas array, просто объявляет объект:

<?php
    $response = new \stdClass();
    $response->ID_SI = $sitio->getID_SI();
    header('Content-Type: application/json'); //opcion 1
    echo json_encode($response);
?>

Js:

$(document).ready(function(){
   //Solicita consulta y recibe los datos
   $.ajax({
   type: "GET",
   url: "php/infoAction.php",
   data: { id:"SI01" },
   async: true,
   success: function(datos){
      var dataJson = datos;

      //Cambio de atributos de imágenes
      $('img[name=imagenPrincipal]').attr("id",dataJson.ID_SI);

   },
    error: function (obj, error, objError){
      alert("Ha ocurrido un error al consultar los datos");
   },
   dataType: 'json' //opcion 2
});

Надеялся, что он подает тебя, комментируй больше проблемы

3
ответ дан 24.11.2019, 12:49
  • 1
    поскольку он решает твой ответ: indice no definido? – Black Sheep 01.11.2016, 15:59
  • 2
    у тебя не определенный индекс выходит? я только что издал ответ с " echo" это было бы должно перемещать plain text в json – Alejandro Giraldo 01.11.2016, 16:46
  • 3
    indice no definido = Notice: Undefined index:.. - ошибка исходит из PHP – Black Sheep 01.11.2016, 17:09
  • 4
    ok не habi я одеваю эту аннотацию @aldanu – Alejandro Giraldo 01.11.2016, 17:15
  • 5
    Ошибка - из-за url, который они перемещают в javascript. этот маршрут, соединена настоящей страницей. лучшее состоит в том, чтобы давать полный маршрут или полный домен. – Alejandro Giraldo 01.11.2016, 17:17

Чтобы находить быстро ошибку, если эти vizualizando твой проект в индейце-апачие мы сказали http://localhost:8080/miproyecto/php/infoAction.php ты можешь старайся перемещать его вручную параметр http://localhost:8080/miproyecto/php/infoAction.php?id=SI01

это прикрепляет в твоем url и в твоем infoAction.php hacele один var_dump($_GET) и проверь, если он доступен в $ _GET и смотрит, идет ли key правильно (пойдите).

Это состоит в случае в том, чтобы ты захотел сделать его debug в твое приложение. Привет

1
ответ дан 24.11.2019, 12:49
  • 1
    и если ты смотришь в консоли, есть ли у тебя 250 alg и #; n ошибка? 404? – Black Sheep 01.11.2016, 19:40
  • 2
    Если это 404, он, потому что маршрут неправильная поэтому не находит ее. Нужно проверять, что маршрут, куда ты делаешь request, был правилен. – Mauricio Trinidad 01.11.2016, 20:09

array ты это определяешь зло, сделай это этой формой:

$arr = [];
$arr[] = [
// array
]
-1
ответ дан 24.11.2019, 12:49
  • 1
    Я не вижу qu и # 233; он имеет, зло определяет это как est и # 225; делая автор. Если договаривается другая форма, это другая тема, но $arr[] = Array(... ) полностью v и # 225; lido . – Mariano 01.11.2016, 08:19
  • 2
    Я это определил в других возможностях, как он упоминает об этом @Mariano, и у меня не были проблемы, поработав с в любом случае спасибо за твой ответ!. – binsoul 01.11.2016, 20:57