根据 jQuery 计算写入 PHP 变量并显示预定值
Writing PHP variable based on jQuery calculations and displaying predetermined value
上下文:
我正在尝试制作一个自动生成的列表,每个页面上的项目数量不同。根据其在列表中的位置,每个项目都需要一个名称和一个 link。这是一个有问题的部分有两个项目的示例:
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() 函数显示。
至少这是我对如何使流程自动化的想法。如果有办法做到这一点,请告诉我。如果你知道更好的方法,请告诉我。
您遇到的问题是服务器端处理和客户端处理之间的区别。
考虑这一点的一个简单方法是 PHP 在 HTML 甚至放在屏幕上用它们的可变内容替换所有 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>
上下文:
我正在尝试制作一个自动生成的列表,每个页面上的项目数量不同。根据其在列表中的位置,每个项目都需要一个名称和一个 link。这是一个有问题的部分有两个项目的示例:
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() 函数显示。
至少这是我对如何使流程自动化的想法。如果有办法做到这一点,请告诉我。如果你知道更好的方法,请告诉我。
您遇到的问题是服务器端处理和客户端处理之间的区别。
考虑这一点的一个简单方法是 PHP 在 HTML 甚至放在屏幕上用它们的可变内容替换所有 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>