[英]Grab HTML tag value and assign to PHP variable
每当打开打开全部成功执行的弹出窗口时,我就有JavaScript可以更改输入标签的值。 当我检查标签时,该值正是每次的值。 现在在该弹出窗口中,我只想使用我的PHP变量回显该值,但这似乎不起作用。 我知道PHP的整个概念是服务器端的,而JavaScript是客户端的,但是因为更改了值就没有关系,因为该值在那里而且即使我重新打开弹出窗口,PHP也应该能够接收它。
任何想法如何实现这一目标?
我的代码如下。 我无法重新加载页面(例如,使用post方法等)。
HTML输入标签:
<td class="alarmvalue" style="">
<input type="checkbox" name="tracknameneeds" id="tracknameneeds" style="text-align:center;" class="form-control" value="">
</td>
尝试回显输入标签值的代码:
<?php
$trackname = "<script>document.getElementByID('tracknameneeds').value;</script>";
?>
<!-- Play Options localstorage etc -->
<div class="context-menu">
<div id="modal-pl-playpopup" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal-pl-playpopup-label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 class="modal-title" id="modal-pl-clear-label">Play Options</h3>
</div>
<div class="modal-body">
Choose from the following...<br>
<p>You Chose: <?php echo $trackname;?></p>
<br>
<br>
<a href="javascript:;" class="btn btn-default btn-lg" style="width:100%" data-cmd="add" data-dismiss="modal"><i class="fa fa-plus-circle sx"></i> Add To Queue</a><br> <div style="padding-top:5px"></div>
<a href="javascript:;" class="btn btn-default btn-lg" style="width:100%" data-cmd="addplay" data-dismiss="modal"><i class="fa fa-play sx"></i> Add And Play</a><br><div style="padding-top:5px"></div>
<a href="javascript:;" class="btn btn-default btn-lg" style="width:100%" data-cmd="addreplaceplay" data-dismiss="modal"><i class="fa fa-share-square-o sx"></i> Add, Replace And Play</a>
</div>
</div>
</div>
</div>
</div>
我的JS:
var tracknamepopup;
tracknamepopup = o.data("path"); //assign song name to variable
document.getElementById('tracknameneeds').value = tracknamepopup; //assign the grabbed song name to inputs value to try grab that in php
在服务器端完成PHP执行并将响应发送到客户端之后,将完成所有HTML代码和Javscript执行(在客户端)。
因此,您不能直接将HTML标记值绑定或分配给PHP。
但是您可以通过AJAX进行设置并将其存储在会话中,以便在PHP上执行下一个脚本。
JS中的代码应为:
var tracknamepopup;
tracknamepopup = o.data("path"); //assign song name to variable
document.getElementById('tracknameneeds').value = tracknamepopup; //assign the grabbed song name to inputs value to try grab that in php
// you can write code for call update session varible using ajax
updateServerSession('tracknameneeds',tracknamepopup);
function updateServerSession(session_index,value) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "update_ajax?index"+session_index+"&value="+value, true);
xhttp.send();
}
update_ajax.php中的代码
<?php
session_start();
$_SESSION[$_GET['index']]=$_GET['value'];
我认为最简单的方法是只使用get变量:
window.open("http://www.yoursite.com/popup.php?trackname=".concat(document.getElementByID('tracknameneeds').value));
然后使用
$_GET['trackname']
但是您应该在发布之前转义所有get变量!
我所做的可能不是最好的解决方案,但效果很好。
有一个空白标签(在我的情况下,我使用了标头(h1,h2等标签))并为其指定了ID。 使用js操作内部HTML以显示当前轨道。
HTML:
<h2 id="songbacktag"></h2>
JS:
var tracknamepopup;
tracknamepopup = o.data("path");
document.getElementById("songbacktag").innerHTML = tracknamepopup;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.