簡體   English   中英

從PHP發送Javascript構造函數數組到Javascript

[英]send array of Javascript constructors from PHP to Javascript

我正在嘗試將數組從PHP發送回Javascript。 我正在使用Ajax來做到這一點。 我知道如何將數組發送到Javascript,但是這次我試圖發送包含一些Javascript構造函數的數組。 例如,我希望能夠發送此消息: [new Date(2017,06,03), 25, 33]有沒有辦法將此數組發送給Javascript? 如果是這樣,那么Javascript如何在數組的第一個索引中創建新Date的方式使用此數組?

您不能只是簡單地發送new Date()值而不是構造函數嗎? 我認為會更有效。

簡短的回答:不,沒有直接的方法。

長答案:當您說要從PHP向Javascript發送數組時,您需要了解PHP是服務器端語言,而Javascript是瀏覽器中運行的語言。 因此,在它們之間,您具有網絡層,並且在該層上傳輸的所有事物都應該可序列化,通常表示字符串。

因此,您通過Ajax傳遞給瀏覽器的數據通常是JSON。 它只能包含原始值,例如:字符串,數字,布爾值,空值。

new Date(2017,06,03)是一個javascript對象,不屬於JSON規范。 您可以使用某些PHP函數(例如date序列化Date,通過Ajax發送,然后在Javascript world中反序列化。

像這樣:

<?php
    /* your Ajax return */
    echo json_encode(array(date('c', mktime(0, 0, 0, 7, 1, 2000)), 25, 33)); // will return ["2000-07-01T00:00:00-07:00",25,33]
?>

然后在JavaScript部分,您可以使用Date構造函數對其進行解析。

// Javascript
const response = ...
const myData = new Data(response[0]); // Will be Date obj.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM