Re: How can I echo a javascript var in an email subject line? Possible?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Terion Miller wrote:




On Wed, Apr 8, 2009 at 12:50 PM, Michael A. Peters <mpeters@xxxxxxx <mailto:mpeters@xxxxxxx>> wrote:

    Terion Miller wrote:



           javascript is client side.
           php is server side.
           To use something client side in a server side script, the web
        page
           has to send it to the server from the client.

           The best way to do what you want to do is probably to do the work
           count server side, but if you really want to use what javascript
           produced you can create a hidden input with a specified id,
        and use
           dhtml via javascript to modify the input and insert the value
        into
           the value field of the hidden input. Then it will get sent to the
           server when the user hits the post button.

           However, since you should be validating any user input server
        side,
           you'll need to validate that the variable is accurate - might as
           well just do the count with php server side.



        Thanks Michael I was kind of moving in the right direction as
        far as the hidden input goes, going to have to google on how to
        do it with the dhtml and all like you suggested.


    Look at the various DOM functions - IE for

    <input type="hidden" name="wordcount" id="hiddenStudd" value="">

    you coud do in your js:

    var myHidden = document.getElementById('hiddenStuff');
    myHidden.setAttribute('value',$yourvalue);


Thought I would go ahead and post a bit more on this, so here is my wordcount little function on the textarea of the form:

<textarea name="Comments" cols="55" rows="5" wrap="hard" onKeyDown="wordCounter(this.form.Comments,this.form.remLen, 300);" onKeyUp="wordCounter(this.form.Comments,this.form.remLen, 300);"><?php if (isset($_SESSION['Comments'])) {echo $_SESSION['Comments'];} ?></textarea><br>Letters to the Editor are limited to 300 words or less.<br>Words remaining: <input type=box readonly name=remLen size=3 value=300>

So I was thinking I should be able to pass that again to the next page which is the emailform.php page that is taking all the id= and printing them to an email ....
should be able to reuse that function right?

<input type="hidden" id="words" value="" onSubmit="return wordCounter(this.form.Comments,this.form.remLen);" >

or do I need to define the variable? think I'm starting to confuse myself lol

You don't want the onSubmit in the the hidden input.

I'm not a javascript guru - but I believe you can have the form onSubmit do the word count and insert it into the input field before the actual submit happens, I've never tried having an onsubmit function alter a value field though.

I would change the textarea to have an id="Comments" field and the remLen input to have an id="remLen" field to make it easy to find via getElementById (as id attributes have to be unique), count the words and set them to a variable that then gets put into the hidden input before whatever function you run on the submit type onSubmit returns true.

not tested - but something like this:

function countTheWords() {
   var comment = $document.getElementById('Comments');
   var remLen  = $document.getElementById('remLen').value;
   var count = wordCounter($comment,$remLen);
   var myHidden = document.getElementById('words');
   myHidden.setAttribute('value',$count);
   }

Then in whatever function you run in the form onSumbit have it run the countTheWords() function before it exits.

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux