如何在变量集之间切换而无需加载新页面


How to switch between variable sets without having to load a new page?

我正在使用PHP和JS/jQuery创建一个多语言单页网站。

只有几段文本可以互换,但没有理由让用户重新加载整个页面的图像。

下面你可以看到有三个变量:1. imgVar2. titleVar3.textVar

imgVar不会改变,但titleVar和textVar会根据选择的语言而不同。

同样,这段代码需要作为foreach循环运行,因为它将有多个实例。

            <div class="col-md-4">
              <div class="portfolio-item">
                <img class="img-responsive" src="assets/img/portfolio/**imgVar**.jpg" alt="" />
            <h4><span> **titleVar** </span></h4>
            <div class="portfolio-text">
            <p><span> **textVar** </span></p>
            </div>
            </div>
            </div>

我不确定组织变量集的最佳方式是什么(可能是JSON?)或者PHP数组?)或者我尝试做的事情是否可能,特别是在不重新加载页面的情况下。

我知道我将最有可能使用AJAX,但我不能添加jQuery load函数到HTML以外的任何东西,这将不允许我编写PHP foreach循环。


提前感谢!

目标是"查询"数据库以显示此信息。像下面这样使用PDO连接…

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM table";
$q = $pdo->prepare($sql);
$q->execute(array());
$Query = $q->fetchAll();

你可以作弊,并运行它作为一个'函数'

function mySwitch($Title,$Text,$Image) {
            <div class="col-md-4">
              <div class="portfolio-item">
                <img class="img-responsive" src="assets/img/portfolio/<?php echo $Image; ?> .jpg" alt="" />
            <h4><span><?php echo $Title; ?> </span></h4>
            <div class="portfolio-text">
            <p><span><?php echo $Text; ?> </span></p>
            </div>
            </div>
            </div>
}

那么你就可以用前向循环

foreach ($Query as $row) {
echo mySwitch($row['row'],$row['columnhere'],$row['columnhere']);
}

应该显示

   <div class="col-md-4">
      <div class="portfolio-item">
        <img class="img-responsive" src="assets/img/portfolio/Image252.jpg" alt="" />
    <h4><span>My Title here</span></h4>
    <div class="portfolio-text">
    <p><span>Text goes here </span></p>
    </div>
    </div>
    </div>

我会发现自己经常做类似的事情,特别是当我有重复的代码;这样就很容易通过了。此外,调试是干净的/易于阅读。

作为一个参考,这是未经测试的。