2014-05-25 57 views
1

我有一個PHP做數組:JS反序列化一個PHP序列化數組

<?php information = array (
    'name' => 'John', 
    'surname' => 'Doe' 
); ?> 

序列化這個數組用PHP,放入輸入值:

<input type="hidden" id="information" name="information" value="<?php echo htmlentities(serialize($hidden_information)); ?>" /> 

現在JS部分。我得到這個輸入值:

var information = $('input#information').val(); 

而問題的一部分:我怎麼能現在JS解序列化PHP序列化數組?我想反序列化'信息'變量。
當它將被反序列化時,我想從數組中提醒姓名和姓氏。

或者,有沒有任何可能的方法來得到這個名字而不反序列化數組?

+0

如果您正在使用PHP comunicating,你應該只序列,如果你想擁有的名稱和人的姓,只需要建立與此信息2個輸入字段,如果這是你想我可以創建你的什麼回答。 – Skatox

+0

它也會在稍後與其他一些必需品進行通信。這就是爲什麼我需要序列化它。 –

+0

使用一種既像JSON一樣理解的格式。 – Gumbo

回答

1

你需要變換數組JSON格式,它會更容易爲JS理解,所以在您的HTML做到這一點:

<input type="hidden" id="information" name="information" value="<?php echo htmlentities(serialize($hidden_information)); ?>" //This will comunicate with PHP 
<input type="hidden" id="js_information" name="js_information" value="<?php echo json_encode($hidden_information); ?>" /> 

信息輸入將使用與以comunicate PHP和js_information與JS交流。

var information = JSON.parse($('#js_information').val()); 

注:然後你就可以使用得到JS這些信息你需要有PHP 5.2或更好的,也有因爲您所指定的ID沒有必要把輸入在jQuery選擇 `

+1

您仍然需要對HTML的特殊字符進行編碼。 – Gumbo