• User

    Javascript in post wordpress? non va...

    Salve a tutti, spero dii aver trovato il posto giusto (l'alternativa era in programmazione...)
    Il mio problema è quello di integrare uno script di somma in javascript su una pagina di wordpress.

    Lo scopo è semplice, il post sarà un test con 20 domande, l'utente potrà rispondere da 0 a 5. La somma determinerà il risultato del test.

    Io ho provato con una cosa del genere:

    function somma() {
    
    a=eval(document.all.A.value);
    b=eval(document.all.B.value);
    c=eval(document.all.C.value);
    d=eval(document.all.D.value);
    e=eval(document.all.E.value);
    f=eval(document.all.F.value);
    g=eval(document.all.G.value);
    h=eval(document.all.H.value);
    i=eval(document.all.I.value);
    l=eval(document.all.L.value);
    m=eval(document.all.M.value);
    n=eval(document.all.N.value);
    o=eval(document.all.O.value);
    p=eval(document.all.P.value);
    q=eval(document.all.Q.value);
    r=eval(document.all.R.value);
    s=eval(document.all.S.value);
    t=eval(document.all.T.value);
    u=eval(document.all.U.value);
    v=eval(document.all.V.value);
    
    z=a+b+c+d+e+f+g+h+i+l+m+n+o+p+q+r+s+t+u+v;
    
    document.all.Z.value=z;
    
    }
    

    richiamato da questo:

    Questo è un programma che fa la somma di numeri.<br>
    
    Risposta (da 0 a 5): <input type="text" name="A" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="B" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="C" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="D" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="E" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="F" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="G" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="H" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="I" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="L" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="M" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="N" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="O" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="P" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="Q" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="R" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="S" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="T" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="U" onkeyup="somma()"> <br>
    Risposta (da 0 a 5): <input type="text" name="V" onkeyup="somma()"> <br>
    
    
    Il tuo risultato è: <input type="text" name="Z">
    

    Il tutto funziona perfettamente su un foglio html ma non su wordpress :arrabbiato:

    Consigli? :bho:


  • User Attivo

    Se la pagina in questione oltre al test non deve contenere del testo modificabile da Wordpress ti consiglio di creare una pagina dedicata, in pratica copi il file page.php lo rinomini in page-test.php, aggiungi in alto fra i tag php

    /*
    Template Name: Page-test
    */

    a questo punto apri il file page-test.php e ci inserisci manualmente il tuo script, se il loop non ti interessa lo rimuovi e lasci solo lo script.
    L'unico problema è che non potrai utilizzarlo come normale post, ma dovrai creare una pagina.
    Se proprio vuoi utilizzarlo in un post, l'unica cosa che mi viene in mente su due piedi è di creare una categoria "test" e tramite un if else in php rimandi i post di questa nuova categoria
    su un nuovo file single-test.php che puoi modificare a piacimento. In pratica (dal file single.php) tutti i post li mandi verso single-default.php, tranne quelli della categoria test che li mandi verso single-test.php.

    Terza alternativa è provare qualche plugin che permette di inserire javascript, purtroppo non ne conosco perchè quando li ho provati non mi sono mai andati bene.