我在我们的sharepoint网站上继承了一段代码并基本理解它,但我迷失在PHP中。 代码是手风琴:https://jqueryui.com/accordion/ 并且它需要值1或0来确定默认显示哪个。
我希望每天更改此值(忽略月末),因此我创建了一个函数,如果月份的日期是奇数或偶数,则设置1或0。
我的问题是使用我的函数的输出作为这个其他函数的值。 我想我需要做一些连接,但我很困惑JQuery开始和PHP结束的地方
下面的代码,它不可复制,因为这也是由两个额外的SharePoint webparts提供,它们生成每个手风琴作品的内容,所以我只包含了代码的内容。
查找$ checkActive,这在我的函数中使用,是我最终行的期望值
jQuery(document).ready(function($) {
var inDesignMode = document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode.value;
if (inDesignMode == "1")
{
}
else
{
//Put the WebPart Title for all the Web Parts you wish
//to put into the jQuery UI Accordion into the array below.
//Accordian(["MY TO-DO LIST","MY COLLABORATION","MY TEAMSITES"]);
//Accordian(["MY FAVORITES","MY TEAMSITES","MY COLLABORATION"]);
Accordian(["MY COLLABORATION","IN THE NEWS"]);
}
});
function Accordian(webPartTitles)
{
for(index in webPartTitles)
{
var title = webPartTitles[index];
$("#accordian").append('<h3>'+title+'</h3>');
var addedToAccordion = 'false';
$("span:contains('"+title+"')").each(function(){
if ($(this).html() == title && addedToAccordion == 'false' ){
if($(this).closest("span").closest("[id^='MSOZoneCell_WebPart']").contents().length > 0)
{
$(this).closest("span").hide().closest("[id^='MSOZoneCell_WebPart']").contents().appendTo($("#accordianTemp"));
addedToAccordion = 'true';
$("span:contains('"+title+"Link')").each(function(){
if ($(this).html() == title + "Link"){
if($(this).closest("span").closest("[id^='MSOZoneCell_WebPart']").contents().length > 0)
{
$(this).closest("span").hide().closest("[id^='MSOZoneCell_WebPart']").contents().appendTo($("#accordianTemp"));
}
}
});
}
}
});
$("#accordian").append("<div>" + $("#accordianTemp").html() + "</div>");
$("#accordianTemp").empty();
}
$dw = date( "j", time());
$checkActive = ($dw % 2 == 0) ? '1' : '0'; // If the day number is Odd, we will show My Collaboration
下面的有效值通常接受1或0,但我希望它采用我的变量值
$("#accordian").find("div").remove( ".ms-webpart-chrome-title" );
$("#accordian").accordion({ heightStyle: "content" }, {active:$checkActive });
}</script>
答案 0 :(得分:0)
您需要使用PHP开始和结束标记来包围PHP,并在Javascript / jQuery中使用PHP值,它需要得到回应。以下是适用的部分:
<?php
$dw = date( "j", time());
$checkActive = ($dw % 2 == 0) ? '1' : '0';
?>
和
$("#accordian").accordion({ heightStyle: "content" }, {active: "<?php echo $checkActive; ?>"});
答案 1 :(得分:0)
我尝试过MattyF和Venkat的建议,我无法让它工作,我最终做的就是单独用Java创建一个解决方案。
var day = new Date().getDate();
var checkActive;
if (day % 2 == 0) { // If the day number is Odd, we will show My Collaboration
checkActive = 1;
} else {
checkActive = 0;
}
$("#accordian").find("div").remove( ".ms-webpart-chrome-title" );
$("#accordian").accordion({ heightStyle: "content" }, {active: checkActive});
我只是尝试传递一个我设置的变量,不包含任何逻辑,从而得出了这个结论。当使用java VAR工作时,很快就建立了IF。正如我在问题中所说,我是这些语言的新手,所以当我第一次看到$我假设PHP时,虽然我后来意识到这只是在JQuery中调用它...
我很感激帮助并为我的无知道歉