Salve,
ho uno script php che riceve due actions da una chiamata Asincrona, esegue delel operazioni sul db per recuperare l'id di una riga e lo stampa fuori (la parte in cui stampa è commentata)
Ora ho la chiamata ajax che quando l'operazione ha successo dovrebbe ritornarmi in una variabile l'id stampato dal php:Codice PHP:<?php
require_once('config.inc.php');
require_once('./lib/functions.php');
require_once('./lib/classes.inc.php');
session_start();
//DB Connection Handler
if (isset($_SESSION['user'])) {
$conn = new mysqli($host,$user,$password,$dbname);
// verifica dell'avvenuta connessione
if (mysqli_connect_errno()) {
// notifica in caso di errore
echo "Errore in connessione al DBMS: ".mysqli_connect_error();
// interruzione delle esecuzioni i caso di errore
exit();
}
else {
// notifica in caso di connessione attiva
if (isset($_REQUEST['action'])) {
$action = $_REQUEST['action'];
switch ($action) {
case "first":
$id = first_db_id($conn);
break;
case "next":
if(isset($_REQUEST['vid'])) {
$vid = $_REQUEST['vid'];
if(next_db_id($conn,$vid)) {
$id = next_db_id($conn,$vid);
}
else {
$id = first_db_id($conn);
}
}
else {
header('HTTP/1.1 400 Bad Request');
die('Nessun ID ricevuto');
}
break;
case "prev":
if(isset($_REQUEST['vid'])) {
$vid = $_REQUEST['vid'];
if(prev_db_id($conn,$vid)) {
$id = prev_db_id($conn,$vid);
}
else {
$id = first_db_id($conn);
}
}
else {
header('HTTP/1.1 400 Bad Request');
die('Nessun ID ricevuto');
}
break;
default:
header('HTTP/1.1 400 Bad Request');
die('Azione inattesa');
break;
}// end switch
/*Qui stampa l'id richiesto*/
echo $id;
}
}
$conn->close();
}// first IF
else {
die('Nessuna sessione avviata');
}
?>
Ora se in una pagina provo a fare questo:codice:function getSongId(action,songID){ var data = "action="+action+"&vid="+songID; $.ajax({ url:"idsong.php", data:data, error: function (richiesta,stato,errori){ alert('Impossibile caricare il prossimo video'); }, success:function (php) { return php; } }); }
Mi risulta che la variabile è undefined.codice:var sID = getSongId('first',null); alert(sID);
Mentre se modifico così la chiamata ajax
E nella pagina di test scrivendo:codice:function getSongId(action,songID){ var data = "action="+action+"&vid="+songID; $.ajax({ url:"idsong.php", data:data, error: function (richiesta,stato,errori){ alert('Impossibile caricare il prossimo video'); }, success:function (php) { alert(php); } }); }
mi stampa correttamente l'alert con all'interno l'id giusto.codice:getSongId('first',null);
Io però avrei bisogno di passarmi quell'id in una variabile da usare in altre chiamate ajax. Cosa sbaglio?

Rispondi quotando
. In success posso recuperare le variabili passate a getSongId(action,songID) ?
