Distacco larghezza dello schermo utilizzando jQuery
-
21-09-2019 - |
Domanda
Con questo codice
var sw = window.screen.width;
$.post("http://www.example.com/track.php", {result: sw
}, "html");
e $ _SERVER [ 'risultato']; nel server che sto cercando di ottenere la larghezza sreen ma non funziona. E 'qualcosa che non va con il "risultato". Sono nuovo in Javascript e jQuery ...
Soluzione
$_SERVER
contiene le variabili del server, vale a dire le cose come il sistema operativo, l'URL di riferimento, percorsi alle varie cartelle sul server.
Quello che state cercando è invece sia la matrice $_POST
, la matrice $_GET
, o la matrice $_REQUEST
. Potrei essere affermando l'ovvio qui, ma ecco cosa contengono:
-
$_POST
contiene un elenco di tutte le variabili inviato alle script. -
$_GET
contiene un elenco di tutte le variabili nella stringa di query (ad esempio:someScript.php?x=1&y=2
) -
$_REQUEST
contiene una fusione di$_POST
,$_GET
e$_COOKIE
(di solito in questo ordine). Non consiglio di utilizzare questo:. Si dovrebbe so i metodi che si sta utilizzando per ottenere variabili nello script e utilizzare tale matrice specificamente
Nel tuo caso, è necessario dare un'occhiata a matrice $_POST
. E 'sempre a portata di mano per eseguire una volta:
print_r($_POST);
Questo vi mostrerà tutto quello pubblicato a quella pagina.
Altri suggerimenti
La funzione .post jQuery $ invia una richiesta POST al server, il che significa che per accedere al valore di "risultato", è necessario ottenere dal $ _POST superglobale.
Prova $ _POST [ 'risultato'] invece di $ _SERVER [ 'risultato'].
Queste descrizioni possono aiutare (fonte: http://www.nusphere.com/php/ php_superglobals.htm ):
- $ _ POST - Il $ _POST superglobale rappresenta i dati inviati al PHP lo script tramite HTTP POST. Questo è normalmente un modulo con un metodo di POST.
- $ _ SERVER - Il $ _SERVER superglobale rappresenta i dati disponibili ad uno script PHP dal server Web stessa (non quello che stai cercando)
- $ _ RICHIESTA - Il $ _REQUEST superglobale è una combinazione di $ _GET, $ _POST e $ _COOKIE (sarebbe lavoro, ma perché cerca GET e COOKIE quando si conosce il valore è in post?)
Prova a fare:
echo $_POST['result'];
Usa $_REQUEST['result']
$_SERVER
è un array contenente informazioni quali intestazioni, percorsi e posizioni di script. Le voci in questo array vengono creati dal server web. Non c'è alcuna garanzia che ogni web server fornisce uno di questi; server possono omettere alcuni, o fornire altri non elencati qui.
$_REQUEST
è un array associativo che di default contiene il contenuto di$_GET
,$_POST
e$_COOKIE
.
Il modo corretto è quello di utilizzare $_POST['result']
, come suggerito da altri qui.