Я нахожусь в процессе разработки панели администратора для сайта друзей. Я использую плагин формы JQuery для отправки формы без обновления страницы. так как эта форма требует загрузки изображения на сервер, я не могу использовать ajax, с которым я немного знаком.
вот моя форма / jquery:
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript" >
$(document).ready(function() {
$('#submitform').live('click', function() {
$("#preview").html('');
$("#preview").html('<img src="loader.gif" alt="Processing...."/>');
$("#imageform").ajaxForm({
target: '#preview'
}).submit();
});
});
</script>
<form id="imageform" method="post" enctype="multipart/form-data" action='pages/addprodprocess.php'>
<table width="100%">
<tr>
<td>Product Name:</td> <td><input type="text" name="prodname" id="prodname" placeholder="Product Name"/></td>
</tr>
<tr>
<td>Product Description:</td> <td><textarea name="proddesc" id="proddesc" placeholder="Product Description"></textarea></td>
</tr>
<tr>
<td>Product Price:</td> <td><input type="text" name="prodprice" id="prodprice" placeholder="Price eg. 7.99"/></td>
</tr>
<tr>
<td>Product Category:</td> <td>
<?php
$getcats = mysql_query("select * from product_cats");
if(mysql_num_rows($getcats) == 0){
echo '<select id="prodcat" name="prodcat" disabled="disabled">';
echo '<option>Please create a category first!</option>';
echo '</select>';
}else{
echo '<select id="prodcat" name="prodcat">';
while($cats = mysql_fetch_array($getcats)){
echo '<option value="'.$cats['cat_id'].'">'.$cats['cat_name'].'</option>';
}
echo ' </select>';
}
?></td>
</tr>
<tr>
<td>Product image:</td> <td><input type="file" name="photoimg" id="photoimg" /></td>
</tr>
<tr><td></td><td><input type="submit" value="submit" id="submitform"/></td></tr>
</table>
</form>
<div id='preview'>
</div>
Кажется, что моя форма / jquery работает нормально, проблема заключается в обработке формы при отправке.
после отправки он отправляется на мою страницу addprodprocess.php для обработки, которая работает нормально, НО при сохранении значений формы в mysql он сохраняет дубликаты (одни и те же данные более одного раза) в таблицу!
вот моя страница обработки:
<?php
$link2 = mysql_connect('localhost', 'username', 'pass');
if (!$link2) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('database');
//ADD PRODUCT
if (isset($_FILES['photoimg'])) {
$path = "../products/";
$valid_formats = array("jpg", "png", "gif", "bmp");
if(isset($_POST) && $_SERVER['REQUEST_METHOD'] == "POST")
{
$name = $_FILES['photoimg']['name'];
$size = $_FILES['photoimg']['size'];
if(strlen($name) && strlen($_POST['prodname']) && strlen($_POST['proddesc']) && strlen($_POST['prodprice']) && strlen($_POST['prodcat']))
{
list($txt, $ext) = explode(".", $name);
if(in_array($ext,$valid_formats))
{
if($size<(1024*1024))
{
$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
$tmp = $_FILES['photoimg']['tmp_name'];
if(move_uploaded_file($tmp, $path.$name))
{
mysql_query("INSERT INTO `products` (`product_name`,`product_desc`,`product_img`,`product_price`,`product_cat`) VALUES('".$_POST['prodname']."','".$_POST['proddesc']."','".$name."','".$_POST['prodprice']."','".$_POST['prodcat']."')");
echo "<img src='products/".$name."' class='preview' height='75' width='75'>";
}
else{
echo "failed";
}
}
else{
echo "Image file size max 1 MB";
}
}
else{
echo "Invalid file format..";
}
}
else{
echo "All fields MUST be filled in!";
}
exit;
}
}
?>
Любой, кто мог бы помочь мне, был бы очень благодарен!