在javascript中调用PHP变量
Calling PHP variable in javascript
我想在HTML/Javascript中从PHP调用一个变量(id),其中DB中的行的id将从锚点发送到另一个页面,这样就可以在表中查看行的详细信息。
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>');
例如,保存和显示了许多不同的事件,当单击VIEW按钮时,它会打开一个新页面,其中具有该ID的事件显示在表中。
更新:我还尝试过在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>";
}
然后使用clone()以javascript显示:
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发送到每个项目-DB中目前有5行的ID从6到10,但当页面加载时,它将第一个ID(6)发送到所有事件,而不是从DB中为每个事件提供自己的唯一ID。
您的代码可能是这样的:
var id = <?php echo $id; ?>;
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?id=' + id + '" class="btn btn-danger btn-sm">Remove Event</a>' +
'</div>');
然而,我发现这要干净得多:
<div class="event-info">
<h4 class="event-name"></h4>
<hr>
<span>
<h5>Date: </h5>
<p class="event-date"></p>
</span>
<p class="event-description"></p>
<input type="button" id="view-event" class="btn btn-info btn-sm"
onclick="showDetails();" value="View Event" />
<a class="btn btn-danger btn-sm">Remove Event</a>
</div>
// below is the javascript example for your manipulations
var id = <?php echo $id; ?>;
$('h4.event-name').html(point.name);
$('p.event-date').html(point.edate);
$('p.event-description').html(point.description);
$('p.event-description').html(point.description);
$('div.event-info a.btn').attr('href', 'details.php?id='+id);
使用后者,您可以为事件数据创建一个容器(例如,如果您必须在同一页面中显示更多事件数据),然后从数据库中生成一个id列表。步骤是:
- 准备一个div(就像一个空模板)
- 获取事件列表(作为数组,或者更好的JSON)
- 将php到javascript的列表传递到JS变量中(或者可能执行AJAX调用)
- 使用JS迭代数组
- 对于每个容器,克隆容器并为其分配一个唯一的id
- 对于每个容器,您都会有一个稍微修改过的JavaScript代码版本(见下文)
因此,您不必担心可读性或可重用性。
var id = point.id;
$('div#' + id + ' h4.event-name').html(point.name);
$('div#' + id + ' p.event-date').html(point.edate);
$('div#' + id + ' p.event-description').html(point.description);
$('div#' + id + ' p.event-description').html(point.description);
$('div#' + id + ' div.event-info a.btn').attr('href', 'details.php?id='+point.id);
一如既往,我们非常欢迎进一步的改进和建议。
看起来您的服务器正在返回一些事件数据。让它也返回事件ID。
例如,如果您的页面为各种事件返回JSON,请在JSON对象中包含ID。
相关文章:
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 如何在php变量中嵌入JQuery代码
- 在javascript函数中使用php变量
- 将地理编码结果转换为php变量以发布到mysql数据库
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 从Javascript和Php变量创建Html模板文档
- 如何将php变量作为javascript中列表的元素
- 将PHP变量分配给PHP数组
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 在Javascript甜甜圈图的PHP变量中引用PHP变量
- 使用javascript访问php变量
- 在Javascript文件中获取PHP变量
- 如何为Javascript数组()的使用准备PHP变量
- 如何获取PHP变量数据并将其存储在JavaScript变量中
- Javascript变量到PHP变量-如果语句不起作用,则发布
- 通过Javascript验证PHP变量
- 如何将Ajax数据值分配给PHP变量
- 如何在 bootsrap 完整日历中使用 PHP 变量
- 在javascript中调用PHP变量