【问题标题】:Converting a field set into javascript variable将字段集转换为 javascript 变量
【发布时间】:2012-09-19 21:58:11
【问题描述】:

我在一个 PHP 变量中有一些值,它是客户的地址。它被传递到 html 中的字段集以显示在页面上。

<fieldset>
            <address><?php echo $_order->getShippingAddress()->getFormated(true) ?></address>
</fieldset>

我想将集合中的每个值都放入一个 javascript 变量中。我该怎么做?

<?php $_ad = $_order->getShippingAddress()->getFormated(true);?>

我希望将 $_ad 中的值放入 javascript 变量中。我试过这样做,但我只能得到一个像 $_ad[0] 这样的索引。只给出一个字母!!!

这是我尝试过的,

val =  '<?php echo $_ad[0] ;?>';

【问题讨论】:

  • 不是有效的 html 标记
  • 我对此不感兴趣!!!
  • @JvdBerg it is in html5
  • getShippingAddress()->getFormated(true);?>
  • 我想从这个变量中获取值到一个javascript变量中!

标签: php javascript fieldset


【解决方案1】:

由于 javascript 在客户端进行评估,而 php 在服务器端进行评估,因此没有直接的方式来交互或交换变量。

您可以公开一个 Web 服务,然后您可以通过 ajax 调用从 javascript 访问该服务。或者您可以只解析页面中的数据,因为您肯定知道其中会有一个带有地址的字段集。使用 jQuery 并尝试这样的事情:

var addresses = $("address").map(function() { return [this.innerHTML.split("<br>")]; });

jsFiddle for that

【讨论】:

    【解决方案2】:

    jQuery:

    var addresses = [];
    
    $('address').each(function(){
        addresses.push($(this).text());
    });
    

    Try it out.

    【讨论】:

    • 您实际上可以映射查询的结果,而不是自己在循环中构造一个新数组。我更喜欢它,因为它更具表现力并且适合一行:)
    【解决方案3】:

    您可以尝试从呈现的 HTML 中获取它

    var addresses = document.getElementsByTagName('address'),
        addresslist = [];
    for(var i = 0, len = addresses.length;i<len;i++){
        addresslist.push( addresses[i].innerHTML );
    }
    

    【讨论】:

    • len 声明在哪里? - 当然用 len = address.length 替换 len
    • @LukeAdamczewski,感谢您的提醒...错误输入 &lt; 而不是 =
    • 好的,我收到了数据。但我想单独获得它!
    • 我收到的是,mjq
      城市
      国家
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签