问题
Got an upload and submit button within a php contact form, but upon clicking submit for file upload, this submit button submits the whole form, and so does the main submit button. Hence the user cannot upload a file. how can i make sure the file submit does not submit the whole form?
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" >
<tr>
<tr>
<td>
<!-- start here-->
<form action="contactform.php" method="post">
<table class="freecontact2form" border="0" width="400px">
<tbody>
<tr>
<td colspan="2"><span style="font-size: x-small;"> </span> <br /> <br /></td>
</tr>
<tr>
<td>Question 1<br>
<br></td>
</tr>
<tr>
<td><br>
Answer 1 <input type="radio" name="ans" value="ans1" /><br />
Answer 2 <input type="radio" name="ans" value="ans2" /><br />
Answer 3 <input type="radio" name="ans" value="ans3" /><br />
Answer 4 <input type="radio" name="ans" value="ans4" /><br />
</td>
</tr>
</tr>
<!--upload form Start here-->
<form action="upload_ac.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" >
<tr>
<td><strong>Upload form/strong></td>
</tr>
<tr>
<td>Below is for file upload:<br>
<br></td>
</tr>
<tr>
<td>Select file
<input name="ufile" type="file" id="ufile" size="50" /></td>
</tr>
<tr>
<td align="center"><input type="submit" name="Submit" value="Upload" /></td>
</tr>
</form>
<!--upload formend here-->
<tr>
<td style="text-align:center" colspan="2"><br /><br /> <input src="submit1.png" name="submit" type="image"> <br /><br />
<br /><br /></td>
</tr>
</tbody>
</table>
</form>
<!-- end here -->
</td>
</tr>
</table>
</td>
</tr>
</table>
回答1:
This doesn't work because your code currently contains a form enclosed into another form. This is not allowed to nest forms.
Your current code:
<form action="contactform.php" method="post">
...
<form action="upload_ac.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
...
</form>
...
</form>
Try this code instead:
<form action="contactform.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
Here you must add all the fields of the two previous forms.
</form>
You must also move the PHP code from upload_ac.php
to contactform.php
.
When you submit this new form, it will:
- upload the file you selected
- populate
$_POST
with the values of the fields
来源:https://stackoverflow.com/questions/14492594/upload-form-within-a-contact-form-the-upload-form-submit-keeps-submitting-the-w