我有一个名为override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "main/login" {
let mainController = segue.destination as! ViewController
mainController.myvar = installer
} else if segue.identifier == "Button1"
let IPController = segue.destination as! IP_ModuleQuickStartViewController
IPController.verified = installer
}
}
的多维数组,如下所示。它的索引0、1、2、3可能没有限制。
我正在使用codeigniter框架。 dataArray
是使用模型返回的数据库中表的所有数据。
dataArray
当添加数据表行时,我通过onclick函数传递此数组,如下所示。 (在foreach中)
0:
status: "1"
added_by: "1"
added_on: "2018-12-12 07:01:23"
approved: 0
c _id: "4"
$('#table').DataTable().row.add([
x, //counter
data[j]['action'], //data in foreach
data[j]['status_1'],
data[j]['description'],
data[j]['timestamp'],
'<input type="button" value="..." onclick="openModal(\'' + dataArray + '\')">' // this is passing array
]).draw(false);
功能如下。
openModal
console.log以上仅返回function openModal(data_array){
console.log(data_array);
}
。我想获取数据并在此处添加foreach。但是数据没有显示。请对此提供帮助。
答案 0 :(得分:1)
我将使用JSON.stringify / parse传递数组数据。
<div id="container"></div>
<script>
var arr = [1,2,3];
function openModal(x) {
x = JSON.parse(x);
console.log(x);
}
document.querySelector("#container").innerHTML+="<input type='button' value='foo' onclick='openModal(\""+JSON.stringify(arr)+"\")'>";
</script>
答案 1 :(得分:1)
首先,您应该向DataTable Row添加对象而不是数组。
$('#table').DataTable().row.add({
x, //counter
data[j]['action'], //data in foreach
data[j]['status_1'],
data[j]['description'],
data[j]['timestamp'],
'<input type="button" value="..." onclick="openModal(\'' + dataArray + '\')">' // this is passing array}).draw(false);
第二, Console.log(data_array)总是显示对象,您可以使用Console.log(JSON.stringify(data_array)),或者如果您想要一个一显示项目,则可以用于或jQuery.each
答案 2 :(得分:1)
您需要先对参数进行字符串化
"<input type='button' value='foo' onclick='openModal(\"" + JSON.stringify(arr) + "\")'>";
然后解析调用函数
function openModal(data_array){
console.log(JSON.parse(data_array));
}