[web] php and html form problem?

Started by
3 comments, last by Wan 18 years, 10 months ago
I am a total newbie with php, I am still learning the basics. But I have some php and html and I have a form on my page but my form's button won't call my &#106avascript function i have set up. This is weird cause I have basically the same code in another page and it works fine execpt that I am not using variable being passed in through the url. well anyways here is my code for my page, but no means is it finished or even neat but I would just like to know why my form doesnt call my &#106avascript function and if you have any advice yo ucan post it here too. Thanks Jay <!--STARTSCRIPT--><!--source lang="cpp"--><div class="source"><pre> &lt;?php <span class="cpp-comment">/* Aurthor: Japhett Burt GhostGamers WebSite projects.php - Created on 5/17/05 This file is the projects page. */</span> require(<span class="cpp-literal">"config.php"</span>); require(<span class="cpp-literal">"common.php"</span>); ?&gt; &lt;!DOCTYPE HTML <span class="cpp-keyword">PUBLIC</span> <span class="cpp-literal">"-//W3C//DTD HTML 4.01 Transitional//EN"</span> <span class="cpp-literal">"http://www.w3.org/TR/html4/loose.dtd"</span>&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;META HTTP-EQUIV=<span class="cpp-literal">"Content-Type"</span> CONTENT=<span class="cpp-literal">"text/html; charset=ISO-8859-1"</span>&gt; &lt;TITLE&gt;&lt;?php echo $page_title; ?&gt;&lt;/TITLE&gt; &lt;style type=<span class="cpp-literal">"text/css"</span> media=<span class="cpp-literal">"screen"</span>&gt; &lt;!-- @import url(<span class="cpp-literal">"layout.css"</span>); --&gt; &lt;/style&gt; &lt;script language=<span class="cpp-literal">"javascript"</span>&gt; function DoSubmit () { <span class="cpp-keyword">if</span> (document.form.mail_from.username == <span class="cpp-literal">""</span>) { alert (<span class="cpp-literal">"You forgot to enter the 'User Name' field."</span>); document.form.username.focus (); <span class="cpp-keyword">return</span> <span class="cpp-literal">""</span>; } <span class="cpp-keyword">if</span> (document.form.pass.value == <span class="cpp-literal">""</span>) { alert (<span class="cpp-literal">"You forgot to enter the 'Password' field."</span>); document.form.pass.focus (); <span class="cpp-keyword">return</span> <span class="cpp-literal">""</span>; } document.form.submit (); } &lt;/script&gt; &lt;/HEAD&gt; &lt;BODY&gt; &lt;div id=<span class="cpp-literal">"wrapper"</span> align=<span class="cpp-literal">"center"</span>&gt; &lt;div id=<span class="cpp-literal">"header"</span> align=<span class="cpp-literal">"center"</span>&gt; &lt;?php include(<span class="cpp-literal">"header.php"</span>); ?&gt; &lt;/div&gt; &lt;div id=<span class="cpp-literal">"menu"</span> align=<span class="cpp-literal">"center"</span>&gt; &lt;?php include(<span class="cpp-literal">"menu.php"</span>); ?&gt; &lt;/div&gt; &lt;div id=<span class="cpp-literal">"content"</span> align=<span class="cpp-literal">"center"</span>&gt; &lt;div id=<span class="cpp-literal">"projects_content"</span> align=<span class="cpp-literal">"left"</span>&gt; &lt;?php $page = $_SERVER['HTTP_REFERER']; $page = getfilename($page); <span class="cpp-keyword">if</span>($action == 'add' &amp;&amp; $page == <span class="cpp-literal">"projects.php?action=login"</span>) { echo"&lt;br&gt;&lt;br&gt;&lt;table&gt; &lt;tr&gt; &lt;td&gt;Project Name:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_name\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;URL of Project Image:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_image\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;URL of Project Forum:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_forum\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;URL of Download:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_download\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;URL of Project Screenshots:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_screenshots\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Team Size:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_teamsize\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Dev Time:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_devtime\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Project Type:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_type\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Project Sub-Type:&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"text\"</span> name=\<span class="cpp-literal">"project_subtype\"</span> size=\<span class="cpp-literal">"40\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td valign=\<span class="cpp-literal">"top\"</span>&gt;Project Description:&lt;/td&gt; &lt;td&gt;&lt;textarea name=\<span class="cpp-literal">"project_description\"</span> cols=\<span class="cpp-literal">"40\"</span> rows=\<span class="cpp-literal">"10\"</span>&gt;&lt;/textarea&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"hidden\"</span> name=\<span class="cpp-literal">"mode\"</span> value=\<span class="cpp-literal">"\"</span>&gt;&lt;/td&gt; &lt;td&gt;&lt;input type=\<span class="cpp-literal">"button\"</span> onclick=\<span class="cpp-literal">"\"</span> value=\<span class="cpp-literal">"Add Project\"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;"; } <span class="cpp-keyword">else</span> <span class="cpp-keyword">if</span>($action == 'view') { ?&gt; &lt;div id=\<span class="cpp-literal">"add_link\"</span> align=\<span class="cpp-literal">"right\"</span>&gt; &lt;a href=\<span class="cpp-literal">"projects.php?action=login\"</span>&gt;- Add Project -&lt;/a&gt; &lt;/div&gt; &lt;?php } <span class="cpp-keyword">else</span> <span class="cpp-keyword">if</span>($action == 'login') { ?&gt; &lt;br&gt;&lt;br&gt; &lt;form action=<span class="cpp-literal">"projects.php"</span> method=<span class="cpp-literal">"post"</span> name=<span class="cpp-literal">"form"</span>&gt; &lt;table&gt; &lt;tr&gt; &lt;td&gt;User Name:&lt;/td&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"text"</span> name=<span class="cpp-literal">"username"</span> size=<span class="cpp-literal">"40"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Password:&lt;/td&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"text"</span> name=<span class="cpp-literal">"pass"</span> size=<span class="cpp-literal">"40"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"hidden"</span> name=<span class="cpp-literal">"mode"</span> value=<span class="cpp-literal">"submit"</span>&gt;&lt;/td&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"button"</span> onclick=<span class="cpp-literal">"DoSubmit ()"</span> value=<span class="cpp-literal">"Login"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/form&gt; &lt;?php } <span class="cpp-keyword">else</span> { echo <span class="cpp-literal">"&lt;div id=\"</span>add_link\<span class="cpp-literal">" align=\"</span>right\"&gt; &lt;a href=\<span class="cpp-literal">"projects.php?action=login\"</span>&gt;- Add Project -&lt;/a&gt; &lt;/div&gt;"; ?&gt; &lt;form action=<span class="cpp-literal">"&lt;?php echo $_SERVER['PHP_SELF']; ?&gt;"</span> method=<span class="cpp-literal">"post"</span> name=<span class="cpp-literal">"form"</span>&gt; &lt;table&gt; &lt;tr&gt; &lt;td&gt;From:&lt;/td&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"text"</span> name=<span class="cpp-literal">"mail_from"</span> size=<span class="cpp-literal">"40"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Subject:&lt;/td&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"text"</span> name=<span class="cpp-literal">"mail_subject"</span> size=<span class="cpp-literal">"40"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td valign=<span class="cpp-literal">"top"</span>&gt;Body:&lt;/td&gt; &lt;td&gt;&lt;textarea name=<span class="cpp-literal">"mail_body"</span> cols=<span class="cpp-literal">"40"</span> rows=<span class="cpp-literal">"10"</span>&gt;&lt;/textarea&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"hidden"</span> name=<span class="cpp-literal">"mode"</span> value=<span class="cpp-literal">"submit"</span>&gt;&lt;/td&gt; &lt;td&gt;&lt;input type=<span class="cpp-literal">"button"</span> onclick=<span class="cpp-literal">"DoSubmit ()"</span> value=<span class="cpp-literal">"Send E-Mail"</span>&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/form&gt; &lt;?php } ?&gt; &lt;/div&gt; &lt;/div&gt; &lt;div id=<span class="cpp-literal">"footer"</span> align=<span class="cpp-literal">"center"</span>&gt; &lt;?php include(<span class="cpp-literal">"footer.php"</span>); ?&gt; &lt;/div&gt; &lt;/div&gt; &lt;/BODY&gt; &lt;/HTML&gt; </pre></div><!--ENDSCRIPT-->
Its not a bug, its a feature!!
Advertisement
Try changing the type from 'button' to 'submit'.

Edit: Button looks like it should work fine, I'll have to look more carefully later, unless someone else answers before then.
Try putting the <form> tags outside of the <table> They usually don't like being inside of there unless you keep them together inside 1 cell. Let me know if that helps.
I would suggest the following:

1: Change the button for submitting to type="submit" and REMOVE the OnClick attribute for the form.

2: Add the following to the <form> tag:

OnSubmit="return DoSubmit(this)"3: Edit the DoSubmit() function to look like this:function DoSubmit(form){    if(form.mail_from.username.value == "")    {        alert ("You forgot to enter the 'User Name' field.");        form.username.focus();        return false;    }    if(form.pass.value == "")    {        alert ("You forgot to enter the 'Password' field.");        form.pass.focus();        return false;    }    return true;}


As a side note, one thing you can do is have a folder called "forms" that has just the HTML code starting from form and going to /form in a separate PHP file that then gets included based on the querystring like you are doing now for the if $action section. Ping me on IM if you want and I can point you at some good resources for that. My IM info is in my profile.
1) The first form ('add') has no form tags.
2) document.form.mail_from.username doesn't exists. Use document.form.mail_from or document.form.username
3) Validating both mail_from and pass in the same routine doesn't work, because only one form is showed and it will never contain both these input controls.

This topic is closed to new replies.

Advertisement