繁体   English   中英

根据jQuery计算编写PHP变量并显示预定值

[英]Writing PHP variable based on jQuery calculations and displaying predetermined value

语境:

我正在尝试制作一个自动生成的列表,该列表在每个页面上都有不同数量的项目。 根据项目在列表中的位置,每个项目都需要一个名称和一个链接。 这是有问题的部分的两个示例的示例:

PHP变量:

$item_link_1 = "link1";
$item_name_1 = "first item";
$item_link_2 = "link2";
$item_name_2 = "second item";

jQuery的:

$("#items").each(function(i) {
$(this).find("a").attr("href", "<?php echo $item_link_"+ ++i +";?>");
});
$("#items").each(function(i) {
$(this).find("a").text("<?php echo $item_name_"+ ++i +";?>");
});

HTML输出:

<div id="items">
<a href="link1" class="item-1">first item</a>
<a href="link2" class="item-2">second item</a>
</div>

问题:

显然,$ item_name _“ + ++ i +”; 将永远无法工作。 我需要一种将jQuery生成的数字添加到变量末尾并回显此新变量的方法。 因此,如果它是第4个项目,则变量将为$ item_name_4。 jQuery将使用text()函数显示此变量的值(手动设置)。

至少那是我关于如何使流程自动化的想法。 如果有办法,请告诉我。 如果您知道更好的方法,请告诉我。

您遇到的问题是服务器端处理和客户端处理之间的区别。

一种简单的思考方法是,在将HTML放到屏幕上之前,先处理PHP,然后用其可变内容替换所有PHP部分。 意味着使用客户端语言(例如javascript)添加php文本将无法执行php代码并获得您想要的结果。

幸运的是,您的示例可以在php中明确完成:

<?php
$links = array(
    array('link' => "Link1", 'name' => "first item"),
    array('link' => "Link2", 'name' => "second item")
);
?>
<div id="items">
    <?php for($i = 0; $i < count($links); $i++){ ?>
        <a href="<?php echo $links[$i]['link']; ?>" class="item-<?php echo $i; ?>"><?php echo $links[$i]['name']; ?></a>
    <?php } ?>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM