热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何通过PHP中的索引属性循环?

我有这种ajax$.ajax({type:"POST",url:"bee_sesi_edit.php&#

我有这种ajax

$.ajax({
type: "POST",url: "bee_sesi_edit.php",data:
'serv_ruang='+ serv_ruangx
+'&who='+names
+'&sesi_d1='+ sesi_d1
+'&sesi_d2='+ sesi_d2
+'&sesi_d3='+ sesi_d3
+'&sesi_d4='+ sesi_d4
+'&sesi_d5='+ sesi_d5
+'&sesi_d6='+ sesi_d6
+'&sesi_d7='+ sesi_d7
+'&sesi_d8='+ sesi_d8
+'&sesi_d9='+ sesi_d9
+'&sesi_d10='+ sesi_d10
+'&sesi_d11='+ sesi_d11,

我从getElementbyId获得了sesi_d *,迭代次数根据用户输入是动态的。

我没有运气尝试过

var jumlah_hari = document.getElementById('jum_hari').value;
$.ajax({
type: "POST",data: 'serv_ruang='+ serv_ruangx +'&who='+names +
for (var i = 1; i <= jumlah_hari; ++i) {
eval( '&sesi_d'+i+'=sesi_d' + i +);
}

有人可以告诉我让sesi_d *循环吗,可以这样做吗?
非常感谢


您可以使用window["nameOfVar"]

通过名称获取全局变量的值。

但是最好让对象具有属性而不是全局变量


// OP's request
const
serv_ruangx = "test",names = ["0","1"],sesi_d1 = "s0",sesi_d2 = "s2",sesi_d3 = "s3";
var data = {
serv_ruangx,who: names,...new Array(3).fill().reduce((obj,_,i) => {
const name = `sesi_d${i + 1}`
return { ...obj,[name]: window[name] };
},{})
}
$.post("bee_sesi_edit.php",{ data })
// Better way
const sesi_d = ["s0","s1","s3"];
var data = {
serv_ruangx,...sesi_d.reduce((obj,value,i) => ({ ...obj,[`sesi_d${i + 1}`]: value }),{ data })



,

假设您有一个可变的obj,如果您需要通过Javascript进行迭代,那么您只需要这样的东西:

for (var i = 1; obj['sesi_d' + i] !== undefined; i++) {
//Do something
}

或者,如果您需要在服务器端(PHP)上执行此操作,请执行以下操作:

for ($i = 1; isset($_POST['sesi_d'.$i]); $i++) {
//Do something
}

想法是元素具有相同的前缀,您只需要更改后缀中的索引即可。


推荐阅读
author-avatar
hedongsheng
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有