动态地在javascript中添加一个phparray变量

时间:2014-12-24 13:56:28

标签: php jquery html impromptu

我正在使用即兴的jquery插件。我可以选择在" html"下插入html。选项,但我需要填充从PHP获得的值数组。我无法插入它。

我想要的是使用php变量中的值填充选择框。 我尝试过:

JSFIDDLE

var statesdemo = {
    state0: {
        title: 'Terms of Use',
        html:'<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"><tr><td><strong>Data1</strong></td><td>:</td><td id=\'Data1\'>   <select name=\'Data1\' id=\'cart_wonid\' class=\'Data1\'><?php echo $options;?> </select></td></tr></table>',
        buttons: { Cancel: false, Agree: true },
        focus: 1,
        submit:function(e,v,m,f){
            if(v){
                e.preventDefault();
                $.prompt.goToState('state1', true);
                return false;
            }
            $.prompt.close();
        }
    },

更新1:

1-主要想法是弹出窗口内的下拉列表 2-我想从我在服务器端(php)写的mysql查询中获取下拉列表数据。所以没有这个弹出窗口,@ tomloprod的想法就完美了。现在回到弹出窗口,我可以添加像

这样的html内容
 html : '< table > < /table > '  

但我想在其中插入php变量,如

html : '< table > < ?php $myvariable ?> < /table >'

2 个答案:

答案 0 :(得分:3)

方法1:使用json_encode推荐

您可以将php数组添加到javascript数组中,如下所示:

var javascript_Array = <?php json_encode($php_Array); ?>;

方法2:将php array的元素直接放入select

尝试直接使用PHP中的数组;我真的没有把它传递给JS ......

<select name="data1" id="cart_wonid" class="Data1">
  <?php
     $len = count($options);
     for($c=0;$c<$len;$c++){
        echo '<option value="'.$options[$c].'">$options[$c]</option>';
     }
  ?>
</select>

方法3:将javascript array的元素放入select

<强> HTML:

<select name="data1" id="cart_wonid" class="Data1"> </select>

<强>使用Javascript:

// Define the array
var javascript_Array = []; 

// Push elements
javascript_Array.push("Hi");
javascript_Array.push("Bye");

// Get the select with id cart_woneid
var sel = document.getElementById('cart_wonid');

// Fill the "select" with the elements of array
var i, len = javascript_Array.length;

for(i = 0; i < len; i++) {
    var opt = document.createElement('option');
    opt.innerHTML = javascript_Array[i];
    opt.value = javascript_Array[i];
    sel.appendChild(opt);
}

JSFiddle: http://jsfiddle.net/1dpud00v/

答案 1 :(得分:2)

感谢上帝...我得到了答案......它的“json_encode($ options)”完成了工作....感谢stackoverflow并感谢支持@tomloprod&amp;胡安门德斯