Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema Ajax-php

  1. #1

    Problema Ajax-php

    Ciao ragazzi, vorrei un aiuto al seguente problema:

    pagina1:

    codice:
     	<html>
    <head>
    //inserisco il documento Ajax
    </head>
    <body>
    <form name="m" onsubmit="AjaxCall('m', 'POST', 'ciao.php', 'cio'); return false;">
    <div id="cio"></div>
    //inserisco un bottone che al click mi faccia comparire 'ciao.php'
    </body>
    </html>

    ciao.php:

    codice:
     	<html>
    <head>
    //inserisco il documento Ajax
    </head>
    <body>
    <form name="s" onsubmit="AjaxCall('s', 'POST', 'ciao_1.php', 'ciol'); return false;">
    <div id="ciol"></div>
    //inserisco un bottone che al click mi faccia comparire 'ciao_1.php'
    </body>
    </html>
    ciao_1.php:

    codice:
     	<?php
    echo 'sasso';
    ?>

    Il problema che ho è nel passaggio con ajax dal secondo al terzo file...

    Cioè:
    Nella pagina1 clicco e all'onsubmit mi compare ciao.php, il problema è che poi cliccando il bottone comparso non mi appare la scritta 'sasso' del file ciao_1.php...

    Aiutatemi se riuscite a capire qualcosa.. se no cercherò di essere più chiaro

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    La funzione AjaxCall?
    No

  3. #3
    Eccola, scusami:

    codice:
    function AjaxCall(AjaxForm, AjaxMethod, AjaxFile, AjaxHtml)
    {
        var AjaxObject, AjaxText;
        AjaxText = document.getElementById(AjaxHtml);
        try
        {
            window.XMLHttpRequest ? AjaxObject = new XMLHttpRequest() : AjaxObject = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
             AjaxText.innerHTML = "AJAX non funziona sul tuo browser";
        }
        AjaxObject.onreadystatechange = function()
        {
            if (AjaxObject.readyState == 4)
            {
                AjaxObject.status == 200 ? AjaxText.innerHTML = AjaxObject.responseText : AjaxText.innerHTML = "Si è verificato un errore nel tentativo di usare AJAX";
    
                document.body.style.cursor = "default";
            }
            else
            {
               document.body.style.cursor = "wait";
            }
        }
        AjaxObject.open(AjaxMethod, AjaxFile, true);
        if (AjaxMethod == "GET")
        {
            AjaxObject.send(); 
        }
        else
        {
            var AjaxCount = 0;
            var AjaxString = "";
            var AjaxForms = document.forms[AjaxForm];
            var AjaxElements = AjaxForms.elements.length;
            for (AjaxCount=0; AjaxCount<AjaxElements; AjaxCount++)
            {
                var AjaxType = AjaxForms.elements[AjaxCount].type.toLowerCase();
                if (AjaxType != "button" && AjaxType != "submit" && AjaxType != "image" && AjaxType != "reset")
                {
                    if (AjaxType == "radio" || AjaxType == "checkbox")
                    {
                        if (!AjaxForms.elements[AjaxCount].checked)
                        {
                            AjaxString += AjaxForms.elements[AjaxCount].value;
                        }
                    }
                    AjaxString += AjaxForms.elements[AjaxCount].name + "=" + encodeURIComponent(AjaxForms.elements[AjaxCount].value);
                    if (AjaxCount < AjaxElements) AjaxString += "&";
                }
            }
            AjaxObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            AjaxObject.setRequestHeader("Content-length", AjaxString.length);
            AjaxObject.setRequestHeader("connection", "close");
            AjaxObject.send(AjaxString);
        }
    }

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se ho capito la logica il problema potrebbe essere perché annidi due forum uno dentro l'altro (non smesso) fai questa prova sposta il div id=cio fuori dal form
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    ho seguito il consiglio di andrea, poi ho sostituito post con get e funziona,
    quindi l'errore sembra essere nella parte post della funzione "AjaxCall"

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    non ho trovato un errore nei tuoi script, in ogni caso ti posto la mia versione, che conserverò nel caso mi possa servire in futuro

    win7 ie11,AjaxCall_1.php (può avere anche estensione .htm)
    codice HTML:
    <html><head><script src="AjaxCall.js"></script></head><body>
    <div id="ris1">
      <form name="m" onsubmit="AjaxCall('m', 'POST', 'AjaxCall_2.php', 'ris1'); return false;">
        <input type="submit" id="bottone" name="bottone" value="Next AjaxCall_2">
      </form>
    </div>
    </body></html>
    AjaxCall_2.php (deve avere estensione .php)
    codice HTML:
    <html><head><script src="AjaxCall.js"></script></head><body>
    <div id="ris2">
      <form name="s" onsubmit="AjaxCall('s', 'POST', 'AjaxCall_3.php', 'ris2'); return false;">
        <input type="submit" id="bottone" name="bottone" value="Next AjaxCall_3">
      </form>
    </div>
    </body></html>
    AjaxCall_3.php (deve avere estensione .php)
    codice HTML:
    <?php echo 'sasso'; ?>
    AjaxCall.js, ho pasticciato un po' ma, di fatto, senza variazioni
    tutto funziona bene
    con "GET" le estensioni degli script diventano meno importanti

  7. #7
    Perfetto ragazzi, ho risolto, grazie mille a tutti, sempre disponibilissimi!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.