SweetAlert下拉列表动态添加列表中的项目

时间:2016-10-27 22:47:44

标签: jquery json sweetalert

我目前正在使用sweetalert2从对话框中捕获用户的输入。我想在链接队列对话框中使用下拉列表,但我似乎无法找到在下拉列表中动态添加项目的方法。假设我想从JSON格式检索数据并放在下拉列表中,有没有办法做到这一点?

SELECT ..., StatusEffect, DateDiff('d',[StatusEffect],Date()) AS DaysActive, Yr, ...

以JSON格式检索数据:

#!/bin/bash

echo -n "DB Password: "
read -s PASSWORD

HOST=yourhostname.com
USER=youruser
DATABASE=yourdatabase

MAIN_TABLES=$(mysql -h $HOST -u $USER -p$PASSWORD -D $DATABASE -Bse "SHOW TABLES WHERE Tables_in_dashboard NOT LIKE 'bigtable_%';")
STATS_TABLES=$(mysql -h $HOST -u $USER -p$PASSWORD -D $DATABASE -Bse "SHOW TABLES LIKE 'bigtable_%';")

echo "Dumping structure..."
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE --no-data | gzip > structure.sql.gz

echo "Dumping main data..."
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE --no-create-info $MAIN_TABLES | gzip > data.sql.gz

echo "Dumping big table data..."
mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE --no-create-info $STATS_TABLES | gzip > big_table_data.sql.gz

1 个答案:

答案 0 :(得分:3)

正如link所说,object参数可以是Promisevar inputOptionsPromise = new Promise(function (resolve) { // get your data and pass it to resolve() setTimeout(function () { resolve({ '#FF0000': 'Red', '#00FF00': 'Green', '#0000FF': 'Blue' }) }, 2000) }) swal({ input: 'select', inputOptions: inputOptionsPromise })

要动态填充选择项,您应该使用promises,这是一个简单的例子:

<script src="https://cdn.jsdelivr.net/npm/sweetalert2@7"></script>
inputOptions

注意,SweetAlert2会自动显示加载器,直到{{1}}参数的Promise被解析或拒绝。