- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是一个奇怪的问题,它甚至可能是不可能的,但我正在尝试做的是检查是否加载了特定的样式表,如果它运行一个代码,则运行另一个。例如:
// Create loop counter
$counter = 0;
while ( have_posts() ) {
// MaxIT - Shows 2 listings per loop instead of 2
for ($x = 0; $x < 2; $x++) {
// Increase loop counter
$counter++;
the_post();
// Include listing loop template
get_template_part( 'loop', 'listing' );
} // endwhile have_posts()
echo '<hr style="width:100%; padding-left: 40px; margin: 60px 0px;" />';
}
此代码的目的是在房地产网站上显示属性。原始代码没有 FOR 循环,我添加了它,因此它会在水平规则中显示之前一次显示 2 个属性。这纯粹是为了美观,在“网格” View 中查看属性时看起来很棒,每行显示两个属性,例如:
属性(property) |属性(property)
水平规则
但是,客户还要求有一个 ListView ,每行显示 1 个属性,左侧是图像,右侧是详细信息。我通过单击下拉选择器加载的第二个样式表完成了此操作。但是,因为上面的 PHP 在 HR 之前加载了 2 个属性,所以显示如下:
属性(property)
属性(property)
水平规则
所以我想要完成的是让 PHP 说“如果加载了 grid_view.css,则在 HR 之前显示 2 个属性,否则如果加载了 list_view.css,则在 HR 之前显示 1 个属性”。
这可以用 PHP 实现吗?我不熟悉任何其他编程语言,所以如果可以用 Javascript/JQuery 完成,那很好,但如果可能的话,我可能需要“虚拟”解释。
提前致谢!
----更新/编辑
好吧,我无法弄清楚如何在 PHP 中执行贾斯汀建议的“设置标志”(不太了解该术语),所以这里有更多关于我当前代码的见解(是的,它是基于 Wordpress 构建,抱歉我早该这么说)。
在我的 header.php 中我有...啊,遇到麻烦了..
所以在我的 header.php 中我有这个...
<link rel="stylesheet" type="text/css" href="/wp-content/themes/wpcasa/slick/slick.css"/>
<link href="/wp-content/themes/wpcasa/lib/assets/css/layout.min.css" rel="stylesheet" type="text/css" title="layoutgrid">
<link href="/wp-content/themes/wpcasa/lib/assets/css/layout_list.css" rel="stylesheet" type="text/css" title="layoutlist">
<script type="text/javascript" src="/wp-content/themes/wpcasa/lib/assets/js/styleswitcher.js"></script>
一次只有一个样式表处于事件状态,哪个由 stylesswitcher.js 文件处理...
function setActiveStyleSheet(title) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) a.disabled = false;
}
}
}
function getActiveStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
}
return null;
}
function getPreferredStyleSheet() {
var i, a;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("rel").indexOf("alt") == -1
&& a.getAttribute("title")
) return a.getAttribute("title");
}
return null;
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
window.onload = function(e) {
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
}
window.onunload = function(e) {
var title = getActiveStyleSheet();
createCookie("style", title, 365);
}
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
那不是我的代码,如前所述,我对 Javascript 几乎一无所知。
然后在我的 search-listings.php 文件中我有这个标记来创建选择器...
<div class="btn-group">
<button class="btn btn-mini dropdown-toggle" data-toggle="dropdown">View <span class="caret"></span></button>
<ul class="dropdown-menu pull-right">
<li><a href="#" onclick="setActiveStyleSheet('layoutgrid'); return false;">Grid view</a></li>
<li><a href="#" onclick="setActiveStyleSheet('layoutlist'); return false;">List view</a></li>
</ul>
</div>
主要问题是我需要顶部 PHP 代码的循环计数器以某种方式运行。 @aug 提供的链接似乎很有意义,但据我所知,我无法将 Javascript 包装在 PHP 周围以实现我需要做的事情。
所以回顾一下......
有一个显示属性列表的 PHP while 循环。
我在 while 循环中编写了一个 PHP for 循环,每次 while 循环循环时显示 2 个列表,而不是 1 个。
在引入“列表” View 之前,上述方法运行良好,由于我缺乏 PHP 知识,必须使用 Javascript 文件来切换事件样式表来实现。
<我现在需要一种方法来仍然能够切换到 ListView 样式表,但要么在加载 ListView 样式表时将 $x < 2 更改为 $x < 1,要么能够有一个 if/elseif 语句,根据加载的样式表给你 $x < 2 或 $x < 1。
我希望这是有道理的,感谢迄今为止的所有帮助!
最佳答案
PHP 将在任何 HTML、Javascript 或 CSS 之前得到处理,因此它无法判断 CSS 类是否存在,因为它在那个时间点不存在。
在您的特定情况下,我会将属性转储到 JSON 对象中并使用 Javascript 处理它。
编辑:PHP 特定解决方案
好吧,我根据您使用的 wordpress 的代码做出假设,在查看 get_posts() http://codex.wordpress.org/Function_Reference/get_posts 时可能值得这样做
由于可用的信息和代码有限,我能看到的最简单的方法是设置一个标志来指定这是否是 ListView 。
让我们假设变量是设置为 true 或 false 的 $listview。
在您页面的模板文件中,您可以...
if(!$listview) {
//echo your extra css here...
}
然后用你创建的循环......
$counter = 0;
if(!$listview) { $hr_counter = 1; } else { $hr_counter = 2; }
while ( have_posts() ) {
// MaxIT - Shows 2 listings per loop instead of 2
for ($x = 0; $x < $hr_counter; $x++) {
// Increase loop counter
$counter++;
the_post();
// Include listing loop template
get_template_part( 'loop', 'listing' );
} // endwhile have_posts()
echo '<hr style="width:100%; padding-left: 40px; margin: 60px 0px;" />';
}
通过这种方式,您要么发布 2 个帖子然后执行规则,要么发布 1 个帖子然后执行规则。
在没有看到更多代码的情况下,我无法针对您的具体情况提供更多帮助。
希望这能帮助或让您朝着正确的方向前进。
关于php - 使用 PHP 检查 CSS 样式表是否对 if/else 语句有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23748789/
我需要根据需要动态设置文本区域,但它不想正常工作。 JQuery 会自行检查,但无法检查是否已检查。但是当您在第二个单选框内单击时,始终需要文本区域。我尝试了很多次让它工作,但它仍然有问题。我添加了“
我需要在 Django 中进行 API 调用(某种形式),作为我们所需的自定义身份验证系统的一部分。用户名和密码通过 SSL 发送到特定 URL(对这些参数使用 GET),响应应该是 HTTP 200
我将在我的可移植 C 代码中使用 #warning 来生成编译时警告。但并非所有平台都支持 #warning。有什么方法可以找到该平台是否支持 #warning。 #ifdef warning
我编写了一个函数来检查某个数字是否存在于某个区间内。停止搜索的最佳方法是什么?这个: for (i = a; i <= b; i++) { fi = f(i); if (fi == c) {
我想知道在 c 中是否有一种方法可以检查,例如在 for 函数中,如果变量等于或不等于某些字符,而不必每次都重复进行相等性检查。如果我没记错的话,以这种方式检查相等性是不正确的: if (a == (
我有如下日志功能 void log_error(char * file_name, int line_num, int err_code) { printf("%s:%d:%s\n", fil
使用 ssh-keygen 生成的 key 对在 macOS 上可以有不同的格式。 macOS 可读的标准 PEM ASN.1 对象 SecKey API 带有文本标题的 PEM OpenSSH ke
我正在尝试编写一个 excel if 语句。我不熟悉使用 Excel 具有的所有额外功能。我正在使用一个名为 importXML() 的函数.我正在尝试检查我正在使用的函数是否生成“#VALUE!”错
有没有办法检查是否没有 AIO 写入给定文件?我在我的 Unix 类(class)上制作了一个项目,该项目将是一个上下文无关(基于 UDP)的国际象棋服务器,并且所有数据都必须存储在文件中。应用程序将
我有一个如下所示的函数: public Status execute() { Status status = doSomething(); if (status != Stat
我正在使用 Composer,我不希望 PhpStorm 在 vendor 文件夹上运行任何错误检查或检查,因为它对 vendor/中的某些代码显示误报composer/autoload_static
Chapel 的一个很好的特性是它区分了数组的域和它的分布。检查两个数组是否具有相同的域和分布(通常想要的)的最佳方法是什么? 我能看到的最好的方法是检查 D1==D2和 D1.dist==D2.di
在我的 JavaScript 函数中,我为所有输入、文本区域和选择字段提供实际值作为 initial_value: $('input, textarea, select').each(function
我正在编写一个分解为几个简单函数的 PHP 类。在构造函数中,它调用另一个名为 processFile 的函数。该函数调用 5 个私有(private)函数并进行检查。如果检查失败,它会将消息分配给
这个问题已经有答案了: How to detect if user it trying to open a link in a new tab? (2 个回答) 已关闭 7 年前。 我认为 JavaS
我正在浏览我们的代码库并看到很多这样的测试: declare @row_id int = ... declare @row_attribute string select @row_attribu
我正在声明一个用作比较的函数。我的问题是: 为什么条件充当语句? 为什么第 4 行可以工作,而第 5 行却不行? 我知道这段代码不切实际且未使用,但为什么编译器允许这种语法? 谷歌没有找到答案。但话又
到目前为止,我有一个带有空文本字段的 PHP Kontaktform,并使用以下命令检查了所需的字段: $name = check_input($_POST['name'], "请输入姓名。"); 现
目前,我能想到的合理检查的唯一方法没有臃肿的逻辑: if ( $value > 0 ) { // Okay } else { // Not Okay } 有没有更好的办法? 最佳答案
我正在尝试运行一个脚本,如果 i 存在(意味着存在 i 值,任何值)或其他部分,我希望运行其中的一部分如果i没有值就运行,有人可以启发我吗? 我说的是 for 循环,比如 for (var i=0;
我是一名优秀的程序员,十分优秀!