javascript - 获取 HTML 标签值并分配给 PHP 变量

标签 javascript php jquery html

每当我打开弹出窗口时,我都会使用 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 标签值绑定(bind)或分配给 PHP。

但是您可以通过 AJAX 设置它并将其存储在 session 中以便在 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'];

关于javascript - 获取 HTML 标签值并分配给 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447250/

相关文章:

PHP MYSQL 表行点击显示数据详细信息

php - FPDF - 找不到类 'App\Http\Controllers\FPDF'

javascript - 我的 jQuery 插件参数无法正确触发时遇到问题

javascript - 无法使用 jquery 删除表中的 tr

javascript - Moment.js - 添加天数时出现奇怪的行为

javascript - Express Nodejs Web 服务中的服务器响应为空

php - 我可以把这个返回写成一行吗?

jquery css 无法设置高度

Javascript vanilla ajax 将响应转换为对象数组?

javascript - 从文本框中过滤 gridview 时显示一些消息