JSON PHP Javascript - простой рабочий пример - PullRequest
1 голос
/ 29 июля 2010

HI,

Я использую следующий код

request.js

var request;
function runAjax(JSONstring)
{

    // function returns "AJAX" object, depending on web browser
    // this is not native JS function!
    request = new XMLHttpRequest();

    request.open("GET", "request.php?json="+JSONstring, true);
    request.onreadystatechange = sendData;
    alert('called');
    request.send(null);
}

function sendData()
{
    // if request object received response
    if(request.readyState == 4)
    {
    // parser.php response
    var JSONtext = request.responseText;
    // convert received string to JavaScript object
  try
  {
  //var JSONobject = eval('(' + JSONtext + ')');
    var JSONobject = JSON.parse(JSONtext);
  }
  catch(e)
  {
    var err="Error: "+e.description;
    alert(err);
  }
 alert('1');
    // notice how variables are used
  try {

    var msg = "Number of errors: "+JSONobject.errorsNum+        "\n- "+JSONobject.error[0]+     "\n- "+JSONobject.error[1];

    alert(msg);
  }
  catch(ee)
  {
    var errr="Error: "+ee.description;
    alert(errr);
  }
    }
}

Я использовал здесь функцию php request.php

<?php

// decode JSON string to PHP object
$decoded = json_decode($_GET['json']);

// do something with data here
 echo "Decoded string - ". $decoded;
// create response object
$json = array();
$json['errorsNum'] = 2;
$json['error'] = array();
$json['error'][] = 'Wrong email!';
$json['error'][] = 'Wrong hobby!';

// encode array $json to JSON string
$encoded = json_encode($json);


// send response back to index.html
// and end script execution
die($encoded);

?>

Я вызываю эту функцию JavaScript со страницы HTML request.html

<html>
<head>
<script src="request.js">
</script>
</head>
<body>
<a href="Javascript:runAjax('vinoth')">call</a><br>
</body>
</html>

Проблема здесьЯ получаю Синтаксическая ошибка в строке: 24

var JSONobject = JSON.parse(JSONtext);

, если я использую

var JSONobject = eval('(' + JSONtext + ')');

Я получаю ") ОжидаетсяОшибка "

После этого я удалил кеш браузера.Перезапустил браузер, теперь код работает очень хорошо.

1 Ответ

0 голосов
/ 29 июля 2010

Вы должны проверить формат JSON, а затем посмотреть там - http://ru.wikipedia.org/wiki/JSON. Вы можете получить представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...