我想從PHP中調用HTML/Javascript中的變量(id),其中來自DB的行的ID將從錨點發送到另一個頁面,以便行詳細信息可以在一張桌子上查看。在javascript中調用PHP變量
var eventContent = $('<div class="event-info">' + '<h4 class="event-name">' + point.name + '</h4><hr>' +
'<span><h5>Date: </h5>' +
'<p class="event-date">' + point.edate + '</p></span>' +
'<p class="event-description">'+ point.description +'</p>' +
'<input type="button" id="view-event" class="btn btn-info btn-sm" onclick="showDetails();" value="View Event" />'+
'<a href="details.php<?php echo $id; ?>" class="btn btn-danger btn-sm">Remove Event</a>' +
'</div>');
因此,例如,出現了一批保存並顯示不同的事件,並點擊查看按鈕時 - 它會打開一個新頁面,在表格中顯示具有該ID的事件。
UPDATE: 我也嘗試過通過建立在PHP/HTML詳細信息列表:
$result = mysqli_query($con,"SELECT * FROM events");
while($row = mysqli_fetch_array($result))
{
echo "<div class='event-details' id='event-details' style='display: none'>";
echo "<h3>Event Details</h3>";
echo "<table class='table'>";
echo "<tr><th>Event Name: </th><td>" . $row['name'] . "</td></tr>";
echo "<tr><th>Event Date: </th><td>" . $row['edate'] . "</td></tr>";
echo "<tr><th>Event Type: </th><td>" . $row['category'] . "</td></tr>";
echo "<tr><th>Event 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>";
}
然後,它會在JavaScript中,使用的clone():
var eventList = $("#event-details").clone().show();
google.maps.event.addListener(event_markers[i], "click", function() {
infowindow.setContent(eventList[0]);
infowindow.open(map, event_markers[i]);
map.setCenter(marker.getPosition());
map.setZoom(10);
});
現在這種方式發送ID輸入,但它發送相同的ID到每個項目 - 目前有5行數據庫的ID從6到10,但是當頁面加載時,它發送第一個ID(6)全部事件,而不是給每一個它自己的唯一ID來自數據庫。
PHP是服務器端代碼,因此,當服務器處理訪問文件的請求時,代碼將被編譯並解析爲HTML。JS是客戶端代碼,所以它在用戶的瀏覽器旁邊運行解析的HTML代碼。客戶端JS無法執行任何PHP命令。 – RenaissanceProgrammer 2015-03-31 21:34:32
^look into ajax – developerwjk 2015-03-31 21:44:44
當PHP確實直接輸出標記時,會出現一些令人討厭的情況。特別是在遺留項目中。由於重構可能比修補更昂貴...去圖。 無論如何,上面的代碼片段對我來說也沒什麼意義,但我試圖想象這些差距,並提供了一些不可知論的想法。無論如何,看起來像一個「小心處理」的情況下,我不想在那裏。 – 2015-03-31 21:51:54