0

我不是一个 JS 人,但我想知道如何将我的 PHP 运行到 JS 中。如何仅使用 Javascript 执行以下操作?

// 1. Getting the request
<?php if($_GET["slider"]=="1"){ ?>
$(".class1 a").click()      
<?php } ?>
<?php if($_GET["slider"]=="2"){ ?>
$(".class2 a").click()

// 2. Matching the URL and setting an active class on the list item
<li><a href="my_page.php" class="<?php if (strrpos($_SERVER['REQUEST_URI'], 'my_page') !== FALSE ) {?>active<?php } ?>">My Page</a></li>

// 3. Nav array and If empty
<?php
$navigation = array(
    'previous'  => 'page1.php',
);

if (isset($navigation['previous']))
{
?>
<div class="prev">
    <a href="<?php echo $navigation['previous']; ?>">
        <span class="previous-icon"></span><span>Previous</span>
    </a>
</div>

我在谷歌搜索后的尝试..

<?php if(var _GET["slider"]=="1"){ } if(_GET["slider"]=="2"){ if (strrpos(var _SERVER['REQUEST_URI'], 'my_page') !== false ) {} var navigation = {
    'previous'  : 'page1.php',
};

if ((navigation['previous']))
{
4

3 回答 3

0
  1. 你可以像在这个答案中一样获得“GET”值(查询字符串)

  2. window.location.href.indexOf("my_page") != -1,搜索window.location和indexOf进一步解释

  3. 校验码

    var navigation = {previous:"page1.php"};
    document.write('<a href="'+navigation["previous"]+'">....');`
    

js中数组不能有字符串索引,需要使用对象;您也可以使用 navigation.previous 代替。

您不能像使用 php 那样混合 js 和 html,您必须使用document.write或其他DOM 操作函数“回显”所有内容。有关这些主题的进一步帮助,请搜索粗体部分。

于 2013-10-11T02:40:01.357 回答
0

听起来你在这里有一个邪恶的联盟,PHP 绘制 JS,然后 JS 做事。这是灾难的秘诀。您的 PHP 应该将您的数据传递给您的 JS,然后让 JS 完成工作。不要混淆逻辑。有一个干净的交接。

<script>
var something = <?php echo $var ?>;
myclass = new someClass(something);
</script>
于 2013-10-11T02:59:51.243 回答
0

回答你的三个问题:

1:如果变量在 URL 中,则单击某些内容(即/page.php?slider=1):查看此页面,其中详细介绍了如何在 jQuery 中从 URL 中检索变量。简而言之,您可以执行以下操作,

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

从 URL 获取变量,然后从那里您可以通过询问来检查是否设置了变量getUrlvars()['slider'] == 1

2:匹配 url 并将类设置为活动:您可以执行类似的操作

if (window.location.href == 'http://www.example.com/page.php') {
   $('a').addClass('active');
}

3:如果您正在寻找使用 Javascript 数组创建链接的动态列表,您可以执行以下操作:

var myLinks = {
  "link_1_title": "http://www.example.com", 
  "link_2_title": "http://www.stackoverflow.com/"
}
$.each(myLinks, function(key, val) {
    $('.navbar').append('<a href="' + val + '">' + key + '</a>');
}

有关更详细的说明jQuery.each,请参阅jQuery 文档页面

于 2013-10-11T02:50:55.373 回答