javascript - 在弹出窗口中显示 php echo 输出
问题描述
我有以下代码在弹出窗口中使用 php echo 为特定供应商输出条款和条件数据 (agb)。只要只有一个供应商,这就可以正常工作。当列出其他供应商时,新窗口中显示的数据与第一个供应商的数据相同。
据我了解,javascript 是在 PHP 之外执行的,因此字符串输出的值不会更新(因为缺少目标?)并且始终引用第一个供应商,即 JavaScript 代码将始终用相同的内容填充新窗口内容。
我想我需要传递一个供应商 ID 或类似于 javascript 函数。但我怎样才能做到这一点?
PHP
<?php if ($_v->getId()): ?>
<p>Seller: <?php echo $_v->getVendorName() ?> </p>
<a href="" class="new-window">terms & conditions</a>
<div style="display:none;">
<div id="agb-text"><?php echo $_v->getData('agb')?></div>
</div>
JS:
<script type='text/javascript'>
jQuery(function($) {
$('a.new-window').click(function(){
var recipe = window.open('','PrintWindow','width=600,height=600');
var html = '<html><head><title>AGB</title></head><body><div id="my-id">' + $('<div />').append($('#agb-text').clone()).html() + '</div></body></html>';
recipe.document.open();
recipe.document.write(html);
recipe.document.close();
return false;
});
});
</script>
解决方案
您总是在弹出窗口中获得相同文本的原因是因为您保存文本的 div 具有相同的 ID agb-text
,并且只能使用该名称设置 1 个 ID,其他 ID 将被忽略。所以你最好使用类和数据属性。
你可以这样做:
<?php if ($_v->getId()): ?>
<p>Seller: <?php echo $_v->getVendorName() ?> </p>
<a href="" class="new-window" data-vendor="<?php echo $_v->getVendorID();?>">terms & conditions</a>
<div style="display:none;">
<div id="agb-text-<?php echo $_v->getVendorID();?>"><?php echo $_v->getData('agb')?></div>
</div>
<script type='text/javascript'>
jQuery(function($) {
$('a.new-window').click(function(){
var vendorID = $(this).data("vendor");
var recipe = window.open('','PrintWindow','width=600,height=600');
var html = '<html><head><title>AGB</title></head><body><div id="my-id">' + $('<div />').append($('#agb-text-' + vendorID).clone()).html() + '</div></body></html>';
recipe.document.open();
recipe.document.write(html);
recipe.document.close();
return false;
});
});
</script>
我$_v->getVendorID()
假设您拥有该功能,但如果您没有,请创建一个或使用更适合您的东西来为每个供应商生成独特的价值。
斯雷特诺 :)
推荐阅读
- sql - 如何从sql列的值中找到总和
- python - 如何在matplotlib的一串文本中加粗单个单词?
- node.js - heroku 日志 --tail 错误:sh:1:nodemon:未找到
- c++ - 如何在 C++ 中读取文件并将数据从文件插入到向量中,这是一个类的类型?
- django - 新的 Django 项目管理 url 不知何故被先前的项目 Django-Allauth 设置覆盖
- associations - 两种数据之间的Python关联规则
- java - 在多个线程中调用方法
- javascript - 这个嵌套的 If 语法有什么问题?
- java - 如何在 Java 中将 2 个类与其 Scanner 变量连接起来?
- flutter - 我想知道用户是否已经对我的应用进行了评分?