导航位置:首页 > 技术开发 > 建站技术开发
帝国CMS多值字段的值手动可控顺序 控制多值字段顺序
豆腐果2020-04-07围观:点赞:
帝国的多值字段其实功能很强大,可以用于多种场合,比如临时手动增加的列表或者多个数据等,但是有时候我们会需要手动调整顺序,这样可以根据不同阶段的数据实现数据的手动更新,这里就增加一个上移和下移的功能。具体如下:
建立多值字段后需要修改输入表单,如果投稿也需要支持就同时修改,具体代码如下(以下代码包含多值字段支持图片上传):
<script>
function domvadd_duozhi()
{
var i;
var str='';
var oldi=0;
var j=0;
var addnum=0;
addnum=parseInt(document.add.mvaddnum_duozhi.value);
oldi=parseInt(document.add.mveditnum_duozhi.value);
for(i=1;i<=addnum;i++)
{
j=i+oldi;
str=str+'<tr><td align="center"><input type="text" name="duozhi_1[]" id="duozhi_1_'+j+'" value=""><a onclick="window.open(\'ecmseditor/FileMain.php?type=1&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=duozhi_1_'+j+'<?=$ecms_hashur[ehref]?>\',\'\',\'width=700,height=550,scrollbars=yes\');" title="选择已上传的文件"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a></td><td align="center"><input type="text" name="duozhi_2[]" id="duozhi_2_'+j+'" value=""></td><td align="center"><input type="text" name="duozhi_3[]" id="duozhi_3_'+j+'" value=""></td></tr>';
}
document.getElementById("mvadd_duozhi").innerHTML="<table width='100%' border=0 cellspacing=1 cellpadding=3>"+str+"</table>";
}
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#DBEAF5">
<tr>
<td align="center" width="30%">回放小图</td><td align="center" width="50%">视频地址</td><td align="center" width="20%">标题</td></tr>
</table>
</td>
</tr>
<tr>
<td>
<?php
if($ecmsfirstpost==1)
{
?>
<table width='100%' border=0 cellspacing=1 cellpadding=3>
<?php
$editnum=3;
for($i=1;$i<=$editnum;$i++)
{
?>
<tr>
<td align="center" width="30%"><input type="text" name="duozhi_1[]" id="duozhi_1_<?=$i?>" value=""><a onclick="window.open('ecmseditor/FileMain.php?type=1&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=duozhi_1_<?=$i?><?=$ecms_hashur[ehref]?>','','width=700,height=550,scrollbars=yes');" title="选择已上传的图片"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a></td>
<td align="center" width="50%"><input style="width:50%" type="text" name="duozhi_2[]" id="duozhi_2_<?=$i?>" value=""></td>
<td align="center" width="20%"><input type="text" name="duozhi_3[]" id="duozhi_3_<?=$i?>" value=""></td></tr>
<?php
}
?>
</table>
<?php
}
else
{
$editnum=0;
if($r['duozhi'])
{
$r['duozhi']=stripSlashes($r['duozhi']);
?>
<div id="checkAndInverCheck">
<table width='100%' border=0 cellspacing=1 cellpadding=3>
<?php
//录入项
$j=0;
$mvf_record=explode('||||||',$r['duozhi']);
$mvf_count=count($mvf_record);
for($i=0;$i<$mvf_count;$i++)
{
$j=$i+1;
$mvf_field=explode("::::::",$mvf_record[$i]);
?>
<tr class="trmove">
<td align="center">
<input type="checkbox" name="duozhi_mvdelid[]" id="duozhi_mvdelid_<?=$j?>" value="<?=$j?>">删
<input type="text" name="duozhi_1[]" id="duozhi_1_<?=$i?>" value="<?=$mvf_field[0]?>"><a onclick="window.open('ecmseditor/FileMain.php?type=1&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=duozhi_1_<?=$i?><?=$ecms_hashur[ehref]?>','','width=700,height=550,scrollbars=yes');" title="选择已上传的图片"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a>
<input type="hidden" name="duozhi_mvid[]" id="duozhi_mvid_<?=$j?>" value="<?=$j?>">
</td>
<td align="center"><input type="text" name="duozhi_2[]" id="duozhi_2_<?=$j?>" value="<?=$mvf_field[1]?>"></td>
<td align="center"><input type="text" name="duozhi_3[]" id="duozhi_3_<?=$j?>" value="<?=$mvf_field[2]?>"></td>
<td style="display: none"><input type="text" name="orderNum" size="3" value="<?=$i+1?>"/></td>
<td><input type="button" name="upMove" value="↑上移"/></td>
<td><input type="button" name="downMove" value="↓下移"/></td>
</tr>
<?php
}
?>
</table>
</div>
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript">
//上移
$("input[name='upMove']").bind("click",function(){
var $this = $(this);
var curTr = $this.parents(".trmove");
var prevTr = $this.parents(".trmove").prev();
if(prevTr.length == 0){
alert("已经第一行了,无法上移");
return;
}else{
prevTr.before(curTr);
sortNumber();//重新排序
}
});
//下移
$("input[name='downMove']").bind("click",function(){
var $this = $(this);
var curTr = $this.parents(".trmove");
var nextTr = $this.parents(".trmove").next();
if(nextTr.length == 0){
alert("已经最后一行,无法下移");
return;
}else{
nextTr.after(curTr);
sortNumber();//重新排序
}
});
//排序
$("input[name='orderNum']").bind("change",function(){
var $this = $(this);
//获得当前行
var curTr = $this.parents(".trmove");
var curOrderNum = $this.val();
//当前行同级的所有行
var siblingsTrs = curTr.siblings();
if(siblingsTrs.length >0){
for(var i in siblingsTrs){
var otherOrderNum = $(siblingsTrs[i]).children().find("input[name='orderNum']").val();
if(parseInt(curOrderNum) <= parseInt(otherOrderNum)){
$(siblingsTrs[i]).before(curTr);
sortNumber();//重新排序
break;
}
}
}
});
function sortNumber(){
var allInput = $("#checkAndInverCheck").find("input[name='orderNum']");
if(allInput.length != 0){
for(var i=0;i<allInput.length;i++){
var tempInput = allInput[i];
tempInput.value = i + 1;
}
}
}
</script>
<?php
$editnum=$j;
}
}
?>
</td>
</tr>
<tr>
<td height="25">扩展数量: <input name="mveditnum_duozhi" type="hidden" id="mveditnum_duozhi" value="<?=$editnum?>">
<input name="mvnum_duozhi" type="hidden" id="mvnum_duozhi" value="3">
<input name="mvmust_duozhi" type="hidden" id="mvmust_duozhi" value="1">
<input name="mvaddnum_duozhi" type="text" id="mvaddnum_duozhi" value="1" size="6"> <input type="button" name="Submit5" value="输出" onclick="javascript:domvadd_duozhi();"></td>
</tr>
<tr>
<td id="mvadd_duozhi"></td>
</tr>
</table>
替换里面的“duozhi”字段即可。
内容页需要调用的时候用以下代码:
<?php
$exp=explode('||||||',$navinfor[duo]);
foreach($exp as $k=>$v)
{
/*下一行是分割多值字段的每行中的每项*/
$exp2=explode('::::::',$v);
/* $exp2[0] $exp2[1] 以此类推分别是每行的第一个值 第二个值 第三个值 */
echo '<li>'.$exp2[0].' '.$exp2[1].' '.$exp2[2].'</li>';
}
?>
共有0条评论