2012-01-20 21 views
1

我正在爲朋友網站設計管理面板的過程。我使用jquery表單插件來提交表單而不刷新頁面。由於這種形式需要將圖像上傳到服務器,因此我無法使用一些更熟悉的ajax。jquery表單插件保存重複條目到mysql表

這裏是我的表格/ 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; 
     } 
     } 
     ?>  

人誰可以幫助我,這將真正理解!

回答

0

在INSERT運行SELECT之前確保它返回NULL。