Как получить значения от url до js? - PullRequest
1 голос
/ 04 августа 2020

У меня возникли проблемы с поиском решения, как я могу получить значения из объекта, который запрашивается по ссылке из моего Интернета ..

Дело в том, что я был создан методом в PHP для получить данные из базы данных значений одного объекта, который мне нужно проанализировать в моем модальном окне, поэтому мне не нужно обновлять страницу sh, чтобы получить подробную информацию о моем продукте.

Вот PHP код для получения сведений, который отлично работает, и мой URL-адрес возвращает объект $ data со значениями.

Controller. php

     public function orderinfo($id){
              $orderInfo = $this->adminsModel->getOrderInfo($id);
              $data=['orderInfo'=>$orderInfo];
              $this->view('admin/orderinfo',$data);
          }

И функция модели для php:

        public function getOrderInfo($id){
             $this->db->query("SELECT * FROM ORDERS WHERE id ='$id'");
            $row = $this->db->single();
            return $row;
        }

И дело в том, что я легко узнал, как получить идентификатор в javascript моего объекта, который имеет идентификатор в базе данных. вот код для получения идентификатора, и я понимаю, как он работает:

HTML:

<a class="fa fa-file-audio-o edu-back-restart" href="#"
 data-toggle="modal" data-target="#InformationproModalftblack"
 id="<?php echo $activeOrders->id; ?>"
 onclick="showDetails(this)">INFO</a>

НЕРАБОТАЮЩИЙ КОД: / mytry / Javascript для получения идентификатора объекта и получения объекта и его значения (объект и значения - моя проблема):

    <script>
  function showDetails(a) {
   $("#"+a.id).click(function () {
         alert(a.id);
      });
    //NOT WORKING-How to get object from url?
    $.ajax({
    url: "localhost/test/orderinfo/280",
        method: "GET",
        datatype: Object,
        success: function(response){
    var customer =response;
           console.log(response);
    }
    });


}
</script>

Я не знаю, как получить весь объект с этого URL-адреса с помощью js или ajax, и я не знаю, как получить значения объекта как: id , имя, улица ..

Большое спасибо за вашу помощь ... извините, если у меня есть ошибки в объяснении проблемы.

Ответы [ 2 ]

1 голос
/ 04 августа 2020

Когда вы выполняете вызов ajax, поле URL должно ссылаться на PHP скрипт, который вы пытаетесь запустить, например:

url: "localhost/test/orderinfo/Controller.php",

Затем убедитесь, что PHP скрипт в какой-то момент вызывает функцию orderinfo (). Если у вас есть эта функция в более крупном скрипте и у вас нет logi c для ее вызова, я бы рекомендовал поместить функцию в меньший PHP файл, единственная цель которого - вернуть результат этого запроса. Например:

//Whatever you need to import to make your query calls
//Whatever variables you need to initialize for your query calls
$temporary_id = "ABC123";
public function orderinfo($id){
      $orderInfo = $this->adminsModel->getOrderInfo($id);
      $data=['orderInfo'=>$orderInfo];
      $this->view('admin/orderinfo',$data);
}
return orderinfo($temporary_id);

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

Изменить: только что заметил в комментариях вы можете передать значение идентификатора в виде данных:

url: "localhost/test/orderinfo/Controller.php",
data: {'id':id_variable},

А затем в PHP получить значение идентификатора, используя $_SESSION['id'];. В качестве альтернативы вы можете передать его как параметр URL:

url: "localhost/test/orderinfo/Controller.php?id=ABC123",
data: {'id':id_variable},

И попасть в PHP, используя:

$id = $_GET['id'];

Значение идентификатора должно храниться в этом PHP переменная как ABC123. Надеюсь, это поможет.

0 голосов
/ 04 августа 2020

Лучший способ отправки данных из PHP в JS - это кодировать их как JSON объект с json_encode .

 public function orderinfo($id){
     $orderInfo = $this->adminsModel->getOrderInfo($id);
     $data=['orderInfo'=>$orderInfo];
     $this->view('admin/orderinfo',json_encode($data));
 }

, поэтому в вашем JS вы может декодировать его с помощью parse JSON как

<script>
  function showDetails(a) {
    $.ajax({
    url: "/test/orderinfo/280",
        method: "GET",
        datatype: JSON,
        success: function(response){
            var obj = jQuery.parseJSON(response);
            console.log(obj);
        }
    });
}
</script>

Обратите внимание , что вам не нужно возвращать все данные $ в этом объекте, и, возможно, вы даже не следует этого делать из соображений производительности и безопасности.

Вместо этого просто подготовьте объект только с данными, необходимыми для JS, и отправьте их, как показано.

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