Calling JS from PHP

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • empiresolutions
    New Member
    • Apr 2006
    • 162

    Calling JS from PHP

    how do i get JS call to work from within a PHP page. Here is my stripped code. please note the multiple file names.

    file1.php - calls JS function in file2.js (working fine).
    file2.js - makes http_request to file3.php to do some stuff. (working fine)
    file3.php - check some stuff in the db (working), then makes the following JS call to a <span> in file1.php (not working)
    Code:
    echo" <script language=Javascript><!--";
    echo" document.getElementById('email_hint').style.visibility = 'visible';";
    echo" //--></script>";
    file1.php <span> tag
    [HTML]<span id="email_hint " style="visibili ty:hidden;">Ema il all ready assigned to a member.</span>[/HTML]

    My questions is why does the <span> never hear/process the getElementById call? Could it be that the call to the *document.* only refers to elements in file3.php? What say you?

    FYI, file3.php is all php, it has no HTML.
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    PHP can't run JavaScript. You will need to either eval this JavaScript from the response or put the code in file1.js instead.

    Comment

    • empiresolutions
      New Member
      • Apr 2006
      • 162

      #3
      SOLUTION - Thanks to *Stryker250* and all other who helped me get on the right track.

      (FYI.. trim() function is part of this lib - PHP to Javascript Project, http://kevin.vanzonnev eld.net/techblog/article/phpjs_licensing/)

      file2.js - Listened for the XHR "responseTe xt" value sent back from the requested page. Depending on the reply, I did something.
      Code:
              if (trim(http_request.responseText)=='email'){
                  document.getElementById('email_hint').style.visibility = 'visible';
              }else if(trim(http_request.responseText)=='email_new'){
                  document.getElementById('email_hint').style.visibility = 'hidden';
              }
      file3.php - Depending on what was PHP'd from data send by file2.js, I echo'd either "email" or "email_new" . (As is in my script, nothing else can be echo'd on the page.)

      Comment

      • acoder
        Recognized Expert MVP
        • Nov 2006
        • 16032

        #4
        That seems like a nice simple solution for your requirements. Glad you got it working and thanks for posting :)

        Comment

        Working...