【问题标题】:Add a phparray variable inside javascript dynamically在javascript中动态添加一个phparray变量
【发布时间】:2015-02-22 15:20:12
【问题描述】:

我正在使用即兴的 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 >'

【问题讨论】:

  • 我在使用“”段时遇到错误
  • 错误是什么?不要一次问两个问题,一次一个问题会让你的问题对其他人更有用
  • @JuanMendes :当我插入 PHP 时,我收到错误 "Uncaught SyntaxError: Unexpected number" 。 & Update1 是问题的详细描述,机器人指向同一个。
  • 永远不要将 PHP 变量直接嵌入到 JavaScript 字符串中,如果它们包含一个必须转义的值(在您的情况下为 '),它们会破坏 JavaScript,但也可以是换行符,标签。使用'&lt; table &gt;'+ &lt; ?php echo json_encode($myvariable) ?&gt; + '&lt; /table &gt;'
  • 现在我得到:Uncaught SyntaxError: Unexpected token ''描述:'
    项目 :

标签: php jquery html impromptu


【解决方案1】:

方法 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/

【讨论】:

  • ok.. 那么只需在“html”中添加该变量就可以了吗?
  • 但是我应该如何在“html”中添加它,我添加了“javascript_Array”,但它不起作用。我得到一个空下拉框
  • 此代码必须添加到“”块中。之后就可以随意使用javascript_Array了。
  • JsFiddle 不能使用服务器端代码 (PHP)。您没有定义数组$options。请尝试在您自己的应用程序中,在您的主机中。无论如何,您的 jsfiddle 不正确。我将编辑我的答案...
  • 对不起@tomloprod:我只显示必要的内容。我已经在我的文件中声明了 $options。一切正常。但是当我尝试将它放在 html 上时,它会失败并显示“Uncaught SyntaxError: Unexpected number”
【解决方案2】:

感谢上帝...我得到了答案...它的“json_encode($options)”完成了工作...谢谢stackoverflow并感谢@tomloprod和Juan Mendes的支持

【讨论】:

    猜你喜欢
    • 2016-09-15
    • 1970-01-01
    • 2012-04-28
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多