Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Problema form con PHP e JS

    Problema form con PHP e JS

    Salve a tutti,
    ho un form che dopo la selezione di un'opzione di un select invia ad un file PHP per mezzo di uno script Java la richiesta di ricercare in una tabella tutti gli elementi con contengono il dato del select e di stamparli in un altro select. Purtroppo però, sebbene abbia inserito degli el nella tabella, il nuovo form rimane vuoto.
    Ecco i codici:
    File php:
    Codice PHP:
    <?phperror_reporting(E_ALL & ~E_NOTICE);
    $autore = $_POST[autore];
    session_start();
    require_once(
    'mysqlconn.php');
    $result = mysql_query("SELECT * FROM titoli WHERE autore='".$autore."' ORDERED BY titolo DESC") or die('mysql_error()');
    while (
    $resrow = mysql_fetch_array($result))
    { echo
    "<option>" .$titolo = $resrow[titolo] ."</option>";}?>



    Script all'interno della pagina con il form:
    codice:
    <scripttype="text/javascript">
    function elenca()
    {
    autore_selezionato
    = document.getElementById('autore').value;
    var ajax =newXMLHttpRequest();

    //se c'è il supporto
    if(ajax)
    {//richiesta pagina con metodo post
    ajax
    .open("post","titoli.php",true);
    ajax
    .setRequestHeader("content-type","application/x-www-form-urlencoded");
    ajax
    .setRequestHeader("connection","close");
    ajax
    .send("autore="+ autore_selezionato);
    ajax
    .onreadystatechange =function()
    {
    if(ajax.readyState ==4)
    {
    if(ajax.status ==200|| ajax.status ==304)
    {//sistemo ciò che arriva
    testo
    = ajax.responseText;
    document
    .getElementById('titolo').innerHTML = testo;
    document
    .getElementById('autore').removeAttribute('disabled');
    }

    }
    }
    }
    }
    </script>

    Cosa devo fare?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A) Avere pazienza
    B) Non aprire discussioni doppie
    C) Cercare di dare più informazioni possibile stimolando gli utenti del forum i commenti tipo non va... non popola nulla... lasciano il tempo che trovano
    codice:
    <scripttype="text/javascript">
            function elenca()
            {    
                var autore_selezionato = document.getElementById('autore').value;
                var ajax =newXMLHttpRequest();
                
                //se c'è il supporto
                if(ajax)
                {//richiesta pagina con metodo post
                    ajax.open("post","titoli.php",false);
                    ajax.send("autore="+ autore_selezionato);
                    ajax.onreadystatechange =function() 
                    {
                        if(ajax.readyState ==4 && ajax.status ==200)
                            {//sistemo ciò che arriva
                                var testo = ajax.responseText;
                                document.getElementById('titolo').innerHTML = testo;
    document.getElementById('autore').removeAttribute('disabled');
                            }
                    }
                }
            }
            </script>
    
    Assicurati che titolo sia id della select che vuoi popolare non il name, che il php generi option corrette
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie Andrea,
    ho controllato e "titolo" è id del select che devo popolare, mi sembra che il php generi select corrette, comunque vedi pure:
    Codice PHP:
    <?phperror_reporting(E_ALL & ~E_NOTICE);
    $autore =$_POST[autore];
    session_start();
    require_once(
    'mysqlconn.php');
    mysql_select_db($database$titoli);
    $result mysql_query("SELECT * FROM titoli WHERE autore='".$autore."' ORDERED BY titolo DESC") or die('mysql_error()');
    while (
    $resrow mysql_fetch_array($result)) {    echo "<option>" .$titolo $resrow[titolo] ."</option>";}?>
    Non so altrimenti proprio cosa fare...

    P.S. Scusa per le discussioni doppie...
    Ultima modifica di masternick; 02-10-2013 a 16:24

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Vediamo la pagina demo oline (tuosito.xxxx/tuapaginademoajax.xxxx)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Come immaginavo è un problema server mysql_error()
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Quindi cosa devo fare?

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Devi studiarti la pagina titoli.php per capire perché la query non viene eseguita se viene passa la variabile
    autore
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    ok, grazie. Farò come dici

  10. #10
    Ho risolto l'errore ed ora funziona, ma se gli elementi da stampare sono >1 non mi stampa nulla. Penso che sia un problema nello script, ma non saprei dire quale. Posto il codice dello script:
    codice HTML:
    <script type="text/javascript">
            function elenca()        {               
     autore_selezionato = document.getElementById('autore').value;
                var ajax = new XMLHttpRequest();        
                   //se c'è il supporto    
            if(ajax)            {    
    //richiesta pagina con metodo post               
     ajax.open("post", "titoli.php", true);
    ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("connection", "close");
    ajax.send("autore=" + autore_selezionato);
    ajax.onreadystatechange = function()                 { 
    if(ajax.readyState == 4)                     {
    if(ajax.status == 200 || ajax.status == 304)                        {
     //sistemo ciò che arriva
    testo = ajax.responseText;
    document.getElementById('titolo').innerHTML = testo;
    document.getElementById('titolo').removeAttribute('disabled');
                            }                                            }                }            }        }        </script>
    Idee?

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.