2016-03-18 4 views
1

У меня есть карта google на этой странице, все маркеры были созданы путем отправки почтовых индексов. Таким образом, у меня есть массив ниже, информация о петле каждого маркера, , который был взломан как («массив», «массив»), я пытаюсь щелкнуть по информационному окну и отобразить соответствующие данные маркера на details.php. Проблема в том, что все находится на кнопке onclick event, а просто на второй странице.Получить данные массива PHP

Это работает, но это очень плохо. Поскольку ограничение на длину URL и причины безопасности; Я хотел бы иметь возможность получить информацию от массива details.php страницы, и кнопка OnClick событие запуска URL выглядит следующим образом: details.php?marker=id

Я не знаю, что это лучший способ пойти об этом, может кто-то указал мне в правильном направлении, пожалуйста?

index.php

 $info = array(); 

     foreach($stmt as $x) 
     { 
      $info[] =    
      "<h4>" . $x['name'] . "</h4><hr />". 
      "<h5>Address: </h5>" . $x['Address']."<br />" . 
      "<h5>Postcode: " . $x['postcode'] ."</h5><br />" . 

      "<button onclick='window.location.href= \\\"details.php?marker=". "<h4>" . $x['name'] . "</h4><hr />". 
      "<h5>Address: </h5>" . $x['address']."<br />" . "<h5>Postcode: " . $x['postcode'] ."</h5><br />" . "\\\" ' > 
      View Details</button>"; 
     }   
     $i=' "'.implode('","', $info).'"'; 

details.php

echo $infomarker = $_GET['marker']; 
+0

Если у вас есть какой-либо способ вытащить данные из БД или где бы вы ни находились, на details.php по ID, тогда вам не повезло. Вы храните эти данные? Как, где $ stmt? Если он поступает из вашей собственной базы данных, то просто передайте идентификатор и вытащите из базы данных на details.php – KyleK

+0

он хранится в базе данных – user999

+1

K, ну тогда вы просто ответили на свой вопрос. Просто передайте идентификатор и вытащите его из базы данных по адресу details.php. Простой – KyleK

ответ

0

Вы должны использовать $x['id'] InstEd из $x['name'], который является уникальным в базе данных, а также использовать base64_encode() для шифрования вашего идентификатора "details.php?marker=".base64_encode($x['id'])."

В вашем details.php

$infomarker = base64_decode($_GET['marker']);

+0

Спасибо за ваш ответ, да base64 encode может скрыть номер идентификатора, однако таким образом я получил только один результат для всех моих маркеров. Поэтому я сейчас попробую ajax-предложение. – user999

0

Попробуйте использовать AJAX, чтобы получить информацию от details.php, а затем загрузить его в InfoWindow.

0

я не сделал понять, насколько это просто, все, что мне нужно, это использовать этот id, записать его внутри инструкции sql на странице с подробной информацией, а затем вызывать любую часть заявления. Всем спасибо. Благодаря @Manjeet Barnala для кодирования подсказок.

+0

Спасибо большое приятель ... @ user999 –

Смежные вопросы