繁体   English   中英

获取HTML标记值并分配给PHP变量

[英]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">&times;</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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM