如何在不加载新页面的情况下在变量集之间切换?

时间:2016-10-25 21:43:42

标签: javascript php jquery ajax multilingual

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

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

下面你可以看到有三个变量: 1. imgVar 2. titleVar 3. 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 加载函数添加到除HTML之外的任何内容上,这不允许我编写PHP foreach循环。


提前谢谢!

1 个答案:

答案 0 :(得分:-1)

目标是“查询”您的数据库以显示此信息。像下面这样使用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>

我会发现自己经常做类似的事情,特别是当我有重复的代码时;使它变得简单易行。调试也很干净/易于阅读。

这是未经测试的,仅供参考。