You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单PHP文件中跨服务器传递PHP变量至JS的symbol参数?

解决PHP变量传递到跨域TradingView脚本的symbol参数问题

核心问题原因

TradingView的嵌入脚本是解析<script>标签内的纯JSON配置,而非执行JavaScript代码。你之前定义的var pair变量不会被脚本识别,必须直接在JSON结构中传入字符串值。


方案1:服务器端静态渲染PHP变量

如果select的值是通过请求(GET/POST)传递到PHP的,直接将变量注入JSON配置即可,注意用json_encode确保格式合法:

// 从请求中获取select控件的值(示例:GET参数)
$selectedSymbol = isset($_GET['symbol']) ? $_GET['symbol'] : 'FX:GBPUSD';
// 用json_encode处理变量,自动转义特殊字符,保证JSON语法正确
$encodedSymbol = json_encode($selectedSymbol);

echo '
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
    <div class="tradingview-widget-container__widget"></div>
    <script type="text/javascript" src="https://s3.tradingview.com/external-embedding/embed-widget-technical-analysis.js" async>
    {
      "interval": "1m",
      "width": 425,
      "isTransparent": false,
      "height": 450,
      "symbol": ' . $encodedSymbol . ',
      "showIntervalTabs": true,
      "locale": "ru",
      "colorTheme": "light",
      "largeChartUrl": "https://example.com"
    }
    </script>
</div>
<!-- TradingView Widget END -->
';

方案2:前端动态更新Select控件的值

如果需要用户选择Select后实时更新图表,需要动态重建TradingView脚本并传入新配置:

  1. 先编写HTML结构:
<select id="symbolSelector">
    <option value="FX:GBPUSD">GBP/USD</option>
    <option value="FX:EURUSD">EUR/USD</option>
    <option value="NASDAQ:AAPL">AAPL</option>
</select>
<div id="chartContainer" class="tradingview-widget-container">
    <div class="tradingview-widget-container__widget"></div>
</div>
  1. 添加JavaScript交互逻辑:
// 监听Select变化事件
document.getElementById('symbolSelector').addEventListener('change', function() {
    const selectedSymbol = this.value;
    const chartContainer = document.getElementById('chartContainer');
    
    // 清空原有图表内容
    chartContainer.innerHTML = '<div class="tradingview-widget-container__widget"></div>';
    
    // 创建新的脚本标签,传入更新后的配置
    const script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = 'https://s3.tradingview.com/external-embedding/embed-widget-technical-analysis.js';
    script.async = true;
    script.textContent = JSON.stringify({
        "interval": "1m",
        "width": 425,
        "isTransparent": false,
        "height": 450,
        "symbol": selectedSymbol,
        "showIntervalTabs": true,
        "locale": "ru",
        "colorTheme": "light",
        "largeChartUrl": "https://example.com"
    });
    
    chartContainer.appendChild(script);
});

// 页面加载时初始化默认图表
window.addEventListener('load', function() {
    document.getElementById('symbolSelector').dispatchEvent(new Event('change'));
});

内容的提问来源于stack exchange,提问作者Oleg Pavlenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:05:37