javascript - PHP: getting variables for many rows in a databse -
i trying send php variable id thats saved in database page displaying google map markers using javascript. have created list display displayed when map marker clicked in php/html:
$result = mysqli_query($con,"select * places"); while($row = mysqli_fetch_array($result)) { echo "<div class='place-details' id='place-details' style='display: none'>"; echo "<table class='table'>"; echo "<tr><th>name: </th><td>" . $row['name'] . "</td></tr>"; echo "<tr><th>details: </th><td>" . $row['description'] . "</td></tr>"; echo"</table>"; echo "<td><a href='details.php?id=".$row['id']."' class='btn btn-warning btn-sm'>view</a></td></div>"; }
in javascript, using clone() display list in each marker:
var places = $("#place-details").clone().show(); google.maps.event.addlistener(markers[i], "click", function () { infowindow.setcontent(places[0]); infowindow.open(map, markers[i]); map.setcenter(marker.getposition()); map.setzoom(10); });
the "id" created automatically , unique key auto increment. problem is, when page loads , event markers clicked, show data first row id, rather each one's own id- displaying information saved in first row only.
update:
for (var in markers) { markers[i].setmap(null); } markers[i] = marker;
and inside function:
place_info.parsedata = function(data) { ...... }
you're using places[0]
. var places
array of elements, , therefore, must loop through elements. i'm assuming var i
generated loop, try setcontent(places[i]);
.
using places.length
upper bound in loop better route.
it's bad practice put same id
attribute on multiple elements. use css class , corresponding selector reference multiple elements share common content or properties.
Comments
Post a Comment