2012-09-19 48 views
-2

我在PHP变量中有一些值是客户的地址。它通过html传递到fieldset中以显示在页面上。将字段集转换为javascript变量

<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] ;?>'; 
+0

不是一个有效的html标签 – JvdBerg

+0

我对此不感兴趣! – MJQ

+2

@JvdBerg [它在html5](http://dev.w3.org/html5/spec/the-address-element.html#the-address-element) –

回答

1

从呈现的HTML得到它,因为JavaScript是在客户端和PHP在服务器端进行评估,没有直接的方式来交互或交换变量。

您可以公开一个web服务,然后您可以通过ajax调用从javascript访问。或者你可以解析页面中的数据,因为你知道确实会有一个带有地址的字段集。使用jQuery和尝试是这样的:

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

jsFiddle for that

1

你可以尝试与

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

len声明在哪里? - 当然用len = address.length替换len

+0

@LukeAdamczewski,谢谢你的抬头......打错了'<而不是'=' –

+0

好的,我收到了数据。但我想单独获取它! – MJQ

1

随着jQuery

var addresses = []; 

$('address').each(function(){ 
    addresses.push($(this).text()); 
}); 

Try it out

+0

您可以将查询的结果实际上映射,而不是建设新的自己在循环中的数组。我更喜欢它,因为它更具表现力,适合于一行:) – sra