Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    frame (e javascript) in PHP

    Salve a tutti qualcuno di voi sa se una pagina PHP caricata in un frame, riesca ad accedere alla gerarchia (e.g. agli altri frame o al suo 'parent') ????
    Faccio un esempio semplice :
    ho una pagina MAIN divisa in 2 colonne. Nel frame a sinistra c'e' un form (con una textarea) che una volta sottomesso carica la pagina php nel frame a destra. Se il frame a destra e' un file locale (al client) il codice sotto funziona. Se faccio in modo che PHP rigeneri lo stesso file, questo pero' non funziona piu'. Nell'esempio si vorrebbe che cliccando il link nel frame a destra si possa scrivere testo nella textarea del frame a sinistra.

    Ogni suggerimento e' ben accetto.


    Codice PHP:
    ------------- MAIN

    <FRAMESET cols="40%, 60%">
     <FRAME src="left.html"    id="frame_left"  name="frame_left">
     <FRAME src="right.html"   id="frame_right" name="frame_right">
    </NOFRAMES>

    ------------- FRAME_LEFT
    <form name="form1" action="http:.........php"
                       enctype="multipart/form-data"
                       method="post"
                       onsubmit="return checkInput()"
                       [B]TARGET="frame_right"> [/B]

        <textarea cols="40" rows="10" READONLY name=[B]"LOG_txtArea"[/B] WRAP=OFF></textarea>

    ------------- FRAME_RIGHT (php)
    <?php
        
    echo ("<SCRIPT type=\"text/javascript\">\n");
        echo (
    "<!--\n");
        echo (
    "function log_in_left_frame (text) {\n");
        echo (
    "[B]parent.frame_left[/B].document.form1.[B]LOG_txtArea[/B].value = text;}\n"); // <-- non va piu'!!
        
    echo ("// -->\n");
        echo (
    "</SCRIPT>\n");
    ?>
    </HEAD><BODY>
    <?php
       
    echo ("<a href onClick=\"log_in_left_frame('pippo')\">click</a>");
    ?>
    </BODY></HTML>

  2. #2
    No, tutto ciò che accade tra i doocumenti parsati dal browser è lato client, e in quel momento il PHP ha già compilato gli script e finito il suo lavoro, quindi non ha modo di accedere agli oggetti HTML in un tempo successivo per modificarli. Il PHP è lato server.

    Tutto ciò che accade lato client è modificabile solo lato client, quindi JavaScript, VBscript Jscript e affini.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  3. #3
    In ogni caso scrivere

    codice:
    ------------- FRAME_RIGHT (php)
    <?php
        echo ("<SCRIPT type=\"text/javascript\">\n");
        echo ("<!--\n");
        echo ("function log_in_left_frame (text) {\n");
        echo ("parent.frame_left.document.form1.LOG_txtArea.value = text;}\n"); // <-- non va piu'!!
        echo ("// -->\n");
        echo ("</SCRIPT>\n");
    ?>
    </HEAD><BODY>
    <?php
       echo ("<a href onClick=\"log_in_left_frame('pippo')\">click</a>");
    ?>
    </BODY></HTML>
    è esattamente come scrivere:

    codice:
    <SCRIPT language="javascript" type="text/javascript">
    <!--
    function log_in_left_frame (text) {
    parent.frame_left.document.form1.LOG_txtArea.value = text; } // <-- non va piu'!!
    // -->
    </SCRIPT>
    </HEAD><BODY>
    <a href onClick="log_in_left_frame('pippo');">click</a>
    </BODY></HTML>
    Il codice infatti è statico, le istruzioni echo non sono legate ad alcuna condizione o ciclo, ovvero avvengono sempre.
    Quindi il problema è proprio di scripting. Posta la pagina HTML compilata nel forum JavaScript.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.