supponiamo di disporre di un array javascript "userName" .Voglio caricarlo da una tabella di database denominata "utente".Carica array Javascript con dati di database MYSQL
Qualcuno può aiutare con idea o codice di esempio?
Grazie
supponiamo di disporre di un array javascript "userName" .Voglio caricarlo da una tabella di database denominata "utente".Carica array Javascript con dati di database MYSQL
Qualcuno può aiutare con idea o codice di esempio?
Grazie
Usa Ajax e PHP come intermedio:
definire un array JS vuoto:
var myarray = new Array();
uso ajax per chiamare lo script PHP, Javascript sarà eval il uscita da PHP (nota che utilizza la libreria prototipo):
new Ajax.Request('myfile.php', {
onSuccess : function(xmlHTTP) {
eval(mlHTTP.responseText);
}
});
scrivere il codice PHP per afferrare i dati e il codice di stampa JS (che devono essere javscript valido!):
$i=0; $q=mysql_query('select ..');
while($row=mysql_fetch_array($q)){
echo "myarray[".$i."]='".$row['data']."';";
$i++;
}
È possibile verificare che l'array Js contiene i dati:
alert(myarray.length);
spero che questo aiuti.
Questo crea un user
variabile globale nella tua pagina.
<?php
$user = /* get information from database the way you usually do */;
// $user == array('id' => 1, 'name' => 'foo', ...);
?>
<script type="text/javascript" charset="utf-8">
var user = <?php echo json_encode($user); ?>;
</script>
Se stai cercando una soluzione dinamica AJAXy, segui alcuni tutorial su AJAX.
in realtà non voglio mix di codice javascript php per fare questo ... ho script javascript e php separati e da javascript voglio chiamare lo script php per ottenere i dati del database .... – Rony
@Rony In questo caso dovrai rispolverare su AJAX, che puoi usare per caricare alcune informazioni dal server. Se la variabile 'user' non cambia, questo metodo è migliore e salva un roundtrip extra sul server. – deceze
Il modo migliore per farlo è semplicemente ottenere i dati nel codice php e quindi "scrivere" il codice javascript per generare l'array in php.
Un breve esempio potrebbe essere:
echo "a = new Array();";
foreach($row in $results)
{
echo "a[$row[0]] = $row[1];";
}
Il mio codice potrebbe essere abbastanza corretto, è juste per darvi un esempio veloce.
Si potrebbe anche farlo in un modo più elegante, utilizzando json.
in realtà non voglio mix di codice javascript php per fare questo ... ho separato javascript e script php e da javascript voglio chiamare lo script php per ottenere i dati del database .... – Rony
Puoi quindi fare una richiesta Ajax a un pezzo di codice php, che ti darebbe i dati in json, xml o qualsiasi cosa tu voglia. –
Dovrai utilizzare le funzioni mysql_connect()
, mysql_select_db()
in PHP per connettersi al tuo db. Successivamente, utilizzare mysql_query()
per SELEZIONARE i campi nella tabella utente (se la tabella utente ha il nome e l'ID dei campi, SELECT name, id FROM user
). Quindi puoi recuperare tutte le informazioni dal db con mysql_fetch_assoc()
o qualsiasi altra funzione di recupero mysql. Ora hai bisogno di echo
i tuoi dati in javascript sul tuo sito web, formattati come una matrice. È complicato avere ragione, ma puoi ottenere assistenza da json_encode
.
Per riempire l'array con i nomi utente, farebbe qualcosa di simile.
<html>
<head>
<script type="text/javascript">
var userName = <?php
// Connect to MySQL
//mysql_connect();
//mysql_select_db();
$d = mysql_query("SELECT name, id FROM user") or die(mysql_error());
$usernames = array();
while($r = mysql_fetch_assoc($d)) {
$usernames[] = $r['name'];
}
echo json_encode($usernames);
?>;
// Do something with the userName array here
</script>
</head>
Vuoi dire che il contenuto dell'array è memorizzato nel database o vuoi ottenere il codice per creare l'array dal database? –
Solitamente Javascript non può parlare direttamente con un database, avrete bisogno di qualcosa in mezzo. Come stai parlando al database? – deceze
@Guillaume: Voglio ottenere il codice per creare array dal database @deceze: io uso php .. – Rony