Re: How can I echo a javascript var in an email subject line? Possible?
| From: | Michael A. Peters | Date: | Wed, 08 Apr 2009 18:34:05 +0000 |
| Subject: | Re: How can I echo a javascript var in an email subject line? Possible? | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-291242@lists.php.net to get a copy of this message | ||
Terion Miller wrote:
On Wed, Apr 8, 2009 at 12:50 PM, Michael A. Peters <mpeters@mac.com <mailto:mpeters@mac.com>> wrote: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.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