Visualizzazione risultati 1 fino 4 di 4

Discussione: [AJAX] Due chiamate in una... problema!

  1. #1
    Guest

    Predefinito [AJAX] Due chiamate in una... problema!

    Stavo realizzando un piccolo script, diciamo questa è la parte in ajax:

    Codice:
     function newcard() {
    $.ajax({
       type: "POST",
       url: "mazziere.php",
       data: "action=newcard",
       success: function(risultato){
    	var contenuto = document.getElementById('io').innerHTML;
        document.getElementById('io').innerHTML=contenuto + risultato;
        var parziale = document.getElementById('my_somma').innerHTML;
    	$.ajax({
       type: "POST",
       url: "mazziere.php",
       data: "action=find_value&card=" + risultato,
       success: function(valore){
    	var somma = parziale + valore;
    	if(somma > 21) {
    	alert('Sballato!');
    	} else {
    	document.getElementById('my_somma').innerHTML=somma;
    	}
       }
     });
       }
     });
    }
    E questo è il contenuto di mazziere.php:

    Codice PHP:
    <?php
    $dadi
    = array('<img src="http://forum.it.altervista.org/images/2.png" />','<img src="http://forum.it.altervista.org/images/3.png" />','<img src="http://forum.it.altervista.org/images/4.png" />','<img src="http://forum.it.altervista.org/images/5.png" />','<img src="http://forum.it.altervista.org/images/6.png" />','<img src="http://forum.it.altervista.org/images/7.png" />','<img src="http://forum.it.altervista.org/images/8.png" />','<img src="http://forum.it.altervista.org/images/9.png" />','<img src="http://forum.it.altervista.org/images/10.png" />','<img src="http://forum.it.altervista.org/images/J.png" />','<img src="http://forum.it.altervista.org/images/Q.png" />','<img src="http://forum.it.altervista.org/images/K.png" />','<img src="http://forum.it.altervista.org/images/A.png" />');
    $action = htmlspecialchars($_POST['action']);

    switch(
    $action) {
    case
    newcard:
    $elemento = array_rand($dadi);
    echo
    $dadi[$elemento];
    break;
    case
    find_value:
    $card = htmlspecialchars($_POST['card']);
    switch(
    $card) {
    case <
    img src="http://forum.it.altervista.org/images/2.png" />:
    echo
    "2";
    break;
    case <
    img src="http://forum.it.altervista.org/images/3.png" />:
    echo
    "3";
    break;
    case <
    img src="http://forum.it.altervista.org/images/4.png" />:
    echo
    "4";
    break;
    case <
    img src="http://forum.it.altervista.org/images/5.png" />:
    echo
    "5";
    break;
    case <
    img src="http://forum.it.altervista.org/images/6.png" />:
    echo
    "6";
    break;
    case <
    img src="http://forum.it.altervista.org/images/7.png" />:
    echo
    "7";
    break;
    case <
    img src="http://forum.it.altervista.org/images/8.png" />:
    echo
    "8";
    break;
    case <
    img src="http://forum.it.altervista.org/images/9.png" />:
    echo
    "9";
    break;
    case <
    img src="http://forum.it.altervista.org/images/10.png" />:
    echo
    "10";
    break;
    case <
    img src="http://forum.it.altervista.org/images/J.png" />:
    echo
    "10";
    break;
    case <
    img src="http://forum.it.altervista.org/images/Q.png" />:
    echo
    "10";
    break;
    case <
    img src="http://forum.it.altervista.org/images/K.png" />:
    echo
    "10";
    break;
    case <
    img src="http://forum.it.altervista.org/images/A.png" />:
    echo
    "11";
    break;
    }
    break;

    }

    ?>
    In parole povere se l' azione è newcard genera un elemento random dall' array, se invece è find_value, a seconda del valore di card in $_POST['card'] da un risultato diverso (lo switch nello switch).

    Ora il problema è: Se tolgo la parte find_card e nell' ajax lascio solo:

    Codice:
     function newcard() {
    $.ajax({
       type: "POST",
       url: "mazziere.php",
       data: "action=newcard",
       success: function(risultato){
    	var contenuto = document.getElementById('io').innerHTML;
        document.getElementById('io').innerHTML=contenuto + risultato;
    Funziona, mentre se lascio come scritto prima no. Dove sbaglio?

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Lo sbaglio, credo, è che dovresti modificare la sintassi del date, se vuoi passare più di un parametro, in questo modo:
    Codice HTML:
    date: {
       "primo_parametro" : "valore_parametro",
       "secondo_parametro" : "valore_parametro"
    }
    Ho tutto in una riga, e la stessa cosa.
    Ultima modifica di sevenjeak : 30-07-2011 alle ore 20.35.40

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Niente :S

  4. #4
    L'avatar di soulcanada
    soulcanada non è connesso Utente giovane
    Data registrazione
    12-08-2011
    Messaggi
    75

    Predefinito

    Ciao, non puoi utilizzare due chiamate ajax una dentro l'altra ma, se le vuoi comunque fare tutte e due insieme, ti consiglio di utilizzare i deferred di jQuery ed in particolare il metodo $.when();

    Quì trovi la documentazione ufficiale
    Ultima modifica di soulcanada : 12-08-2011 alle ore 17.39.10 Motivo: Aggiunto il link alla documentazione ufficiale

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •