Привязка данных полимера к данным таблицы MySQL с помощью PDO

0

Я пытаюсь синхронизировать некоторые свойства элемента полимера с базой данных MySQL на localhost с помощью MAMP.

Как передать данные SQL из переменной PHP в свойство, связанное с данными с помощью Polymer?

Полимерный элемент выглядит следующим образом:

<iron-ajax id="ajax"
  auto
  url="../src/data/php/get_data.php"
  last-response="{{lastResponse}}"
  handle-as="text"></iron-ajax>

...

static get properties() { return {

  lastResponse: {
    type: Object,
    value: {}
  }

}}

lastResponse () {
  console.log(this.lastResponse);
}

Сценарий PHP выглядит следующим образом:

<?php

$servername = "localhost";
$username = "***";
$password = "***";
$dbname = "myDB";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
  $stmt->execute();

  // set the resulting array to associative
  $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
  foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
      echo $v;
  }
}
catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}
$conn = null;

?>
Теги:
polymer
data-binding
pdo

1 ответ

0

Функция PHP

get_data.php

должен эхо (не возвращать) JSON, так как:

$res['data'] = 'Hello!';
echo json_encode($res);

и iron-ajax должен быть установлен для приема JSON:

handle-as="json"

как в документах здесь

https://www.webcomponents.org/element/PolymerElements/iron-ajax/elements/iron-ajax

В Polymer сначала выполните запрос AJAX, а затем получите данные следующим образом:

get_data_responseHandler: function(e) {
   console.log(e.detail.response);
}

Именно так создается точка API.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню