ReferenceError. Как определить переменную из массива json? - PullRequest
0 голосов
/ 09 февраля 2020

С AJAX Я получаю данные из БД, отправленные обратно на сайт в виде json массива. Я получаю выводить результат для отображения, но когда я собираюсь использовать данные дальше, он говорит ReferenceError. переменная не определена. Я не вижу, что я делаю неправильно.
Я должен использовать данные из объекта, чтобы поместить их в качестве параметра в кнопку для удаления (позже), но в приведенном ниже коде я попытался просто получить данные внутри функции оповещения, чтобы увидеть, сработало ли это. Но как-то это не работает.

Вот мой основной код: (Engli sh не является моим языком программирования. Извините. Попытался перевести то, что было возможно)

        function find()
        {
           url = "tjener-kode.php";
              $.get(url,function(data){
              var html="";

                var dataen=JSON.parse(data);
                  console.log(dataen);

                  var postnumber="";
                  var postplace="";
                  for (var a=0; a < dataen.length; a++){

                    postnumber=dataen[a].postnr;
                    postplace=dataen[a].poststed;
                    html+="Postplace: "+postplace+" Postnumber: "+postnumber+" <button onClick=alarm("+dataen[a]["poststed"]+")>Test</button><br>";
                  }
                  $("#respons2").html(html);
           });
        }
        function alarm(postplace){
          alert("Hello. You clicked on  "+postplace);
        }
        </script>
    </head>
    <body>
        <p id="respons2"></p>
      <button onClick="find()">Bring all postcodes</button>
    </body>
</html>

Для кнопки, которую я пробовал другой код с тот же результат ошибки:

<button onClick=alarm("+postplace+")>
<button onClick=alarm("+dataen[a]["poststed"].value+")>

Вот мой код сервера tjener-kode. php:

<?php
$db = new mysqli("xxxxxxxxxxxxxxxxxx");
if($db->connect_error)
{
    die("Error");
}
$sql = "Select * from postnrPoststed";
    $resultat = $db->query($sql);

    $data=array();

    while($rad=mysqli_fetch_assoc($resultat)){
      $data[]=$rad;
    }
    echo json_encode($data);
?>

Используя консольный журнал, вы можете видеть, что результат такой. И это правильно: введите описание изображения здесь

Но при нажатии кнопки на веб-странице, принадлежащей каждому объекту, с предположительно определенной переменной, я получаю эту ошибку в консоли:
В нем говорится, что переменная не определена, но каким-то образом я все еще получаю данные в переменной, показанной в журнале консоли. введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Я нашел проблему. Вот лучший ответ: { ссылка }

Поскольку я использую javascript для создания кнопки, я должен добавить ее к абзацу. Я попробовал один и тот же код внутри html + = "" с и без ', но это не сработало. Таким образом, вы должны добавить его. или document.write ().

$( "#respons" ).append('<input type="button" value="test" onclick="alarm(\'' + postsplace + '\')" />');
0 голосов
/ 09 февраля 2020

Вы получаете эту ошибку, потому что <button onClick=alarm("+dataen[a]["poststed"]+")> уже даст вам необходимое значение. Вам не нужно использовать .value

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