2015-04-15 2 views
0

Я хочу отправить данные формы в mysql с помощью ajax. я не так хорошо знаком с ajax, но я пробовал код, который я понимаю, все текстовые данные, представленные в базу данных, я не могу загрузить & хранить изображение, используя этот код, я не знаю, как это сделать. & также перемещается на другую страницу, используя заголовок, но я не знаю, где я пишу этот код ...! это моя форма & скриптЗагрузить изображение с помощью ajax в php form submit

<html> 
 
<body> 
 
<script language="javascript" type="text/javascript"> 
 
//Browser Support Code 
 
function ajaxFunction(){ 
 
\t var ajaxRequest; // The variable that makes Ajax possible! 
 
\t 
 
\t try{ 
 
\t \t // Opera 8.0+, Firefox, Safari 
 
\t \t ajaxRequest = new XMLHttpRequest(); 
 
\t } catch (e){ 
 
\t \t // Internet Explorer Browsers 
 
\t \t try{ 
 
\t \t \t ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
 
\t \t } catch (e) { 
 
\t \t \t try{ 
 
\t \t \t \t ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
 
\t \t \t } catch (e){ 
 
\t \t \t \t // Something went wrong 
 
\t \t \t \t alert("Your browser broke!"); 
 
\t \t \t \t return false; 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
\t // Create a function that will receive data sent from the server 
 
\t ajaxRequest.onreadystatechange = function(){ 
 
\t \t if(ajaxRequest.readyState == 4){ 
 
\t \t \t 
 
\t \t \t var ajaxDisplay = document.getElementById('ajaxDiv'); 
 
\t \t \t ajaxDisplay.innerHTML = ajaxRequest.responseText; 
 
\t \t } 
 
\t } 
 

 

 
      \t var nkname = document.getElementById('nkname').value; 
 
      var sweaterpic= document.getElementById('sweaterpic').value; 
 
\t   var size= document.getElementById('size').value; 
 
      var category= document.getElementById('category').value; 
 
      \t var style= document.getElementById('style').value; 
 
      var fabric= document.getElementById('fabric').value; 
 
\t   var aboutsweater= document.getElementById('aboutsweater').value; 
 
\t 
 
\t var queryString = "?nkname=" + nkname + "&sweaterpic=" + sweaterpic + "&size=" + size + "&category=" + category+ "&style=" + style+ "&fabric=" + fabric+ "&aboutsweater=" + aboutsweater; 
 
\t ajaxRequest.open("GET", "Uploadsweater1.php" + queryString, true); 
 
\t ajaxRequest.send(null); 
 
} 
 

 
</script> 
 

 

 

 
<form name='myForm' enctype="multipart/form-data"> 
 
Sweater Nick name: <input type='text' id='nkname' /> <br /> 
 
Sweater Pic:<input type="file" id="sweaterpic" class="form-control" style="width:96%;"></br> 
 
Select Size:<select id="size" placeholder="Size"> 
 
\t \t \t \t \t <option value="select">--Choose Size--</option> 
 
\t \t \t \t \t <option value="XS">XS</option> 
 
\t \t \t \t \t <option value="S">S</option> 
 
\t \t \t \t \t <option value="M">M</option> 
 
\t \t \t \t \t <option value="L">L</option> 
 
\t \t \t \t \t <option value="XL">XL</option> 
 
\t \t \t \t \t <option value="XXL">XXL</option> 
 
\t \t \t \t </select><br /> 
 
Select Category: <select id="category" placeholder="Category"> 
 
           <option value="select">--Choose Category--</option> 
 
           <option value="Men">Men</option> 
 
           <option value="Women">Women</option> 
 
           <option value="Kids">Kids</option> 
 
           </select><br /> 
 
Select Style:<select id="style" placeholder="Style"> 
 
\t \t \t \t \t <option value="select">--Choose Style--</option> 
 
\t \t \t \t \t <option value="Cardigan">Cardigan - Sweater that opens in the front.</option> 
 
\t \t \t \t \t <option value="Pullover">Pullover - Sweater that is put on over your head with no opening in the front.</option> 
 
\t \t \t \t \t <option value="Vest">Vest - Any sweater without arms is a vest even if you pull it over your head or it has an open front.</option> 
 
\t \t \t \t </select><br /> 
 
Select Fabric:<select id="fabric" placeholder="Fabric"> 
 
\t \t \t \t \t <option value="select">--Choose Fabric--</option> 
 
\t \t \t \t \t <option value="Cotton">Cotton</option> 
 
\t \t \t \t \t <option value="Wool">Wool</option> 
 
\t \t \t \t \t <option value="Polyester">Polyester</option> 
 
\t \t \t \t \t <option value="Nylon">Nylon</option> 
 
\t \t \t \t \t <option value="Acrylic">Acrylic</option> 
 
\t \t \t \t \t <option value="Lycra">Lycra</option> 
 
\t \t \t \t \t <option value="Rayon">Rayon</option> 
 
\t \t \t \t \t <option value="Other">Other</option> 
 
\t \t \t \t </select><br /> 
 
About Sweater:<textarea cols="30" rows="10" id="aboutsweater" placeholder="About this Sweater"></textarea> <br /> 
 

 

 
<input type='button' onclick='ajaxFunction()' value='Query MySQL' /> 
 
</form> 
 
<div id='ajaxDiv'>Your result will display here</div> 
 
</body> 
 
</html>

это Uploadsweater1.php:

<?php 
include('connection.php'); 
    // Retrieve data from Query String 
$nkname= $_GET['nkname']; 
$sweaterpic=$_GET['sweaterpic']; 
$size= $_GET['size']; 
$category= $_GET['category']; 
$style= $_GET['style']; 
$fabric= $_GET['fabric']; 
$aboutsweater= $_GET['aboutsweater']; 

     $filename = $_FILES['sweaterpic']['name']; 
     $filetype = $_FILES['sweaterpic']['type']; 
     $filesize = $_FILES['sweaterpic']['size']; 
     $filepath = $_FILES['sweaterpic']['tmp_name']; 



    $m = move_uploaded_file($filepath,"upload/".$filename); 

       // Escape User Input to help prevent SQL Injection 
$nkname= mysql_real_escape_string($nkname); 
$size= mysql_real_escape_string($size); 
$category= mysql_real_escape_string($category); 
$style= mysql_real_escape_string($style); 
$fabric= mysql_real_escape_string($fabric); 
$aboutsweater= mysql_real_escape_string($aboutsweater); 

$q="insert into `usersweater`(`SNickname`,`Sweaterpic`,`Size`,`Category`,`Fabric`,`Style`,`About`) values('$nkname','$filename ','$size','$category','$fabric','$style','$aboutsweater')"; 
$r=mysql_query($q); 
?> 

где-то я неправильно

+0

проверка http://stackoverflow.com/questions/23980733/jquery-ajax-file-upload-php –

+0

спасибо за РПЛ, но плз помочь в моем коде, если это возможно .. –

ответ

0

Вы не можете загрузить файл с GET , используйте POST

Кроме того, вы должны действительно выполнить некоторую проверку файла, прежде чем выбросить его в сервер/приложение.

Проверка на наличие ошибок с чем-то вдоль линий этого

 $error = $_FILES['sweaterpic']['error']; 

     // Check errors 
     if($error > 0) { 
      $debugHTML = "<span class='error'>Error on upload: "; 
      switch ($error) { 
       case 1: $debugHTML .= "File exceeded upload_max_filesize"; break; 
       case 2: $debugHTML .= "File exceeded max_file_size"; break; 
       case 3: $debugHTML .= 'File only partially uploaded'; break; 
       case 4: $debugHTML .= 'No file uploaded'; break; 
      }         
      $debugHTML .= '</span><br />'; 

И убедитесь, что это изображение. Это то, что я сделал для старого приложения.

$a = getimagesize($filePath); 
if(!$a) { 
    if(is_dir($filePath)) 
     rmdir($filePath); // Delete directory 
    else 
     unlink($filePath); // Delete file 
    return false; 
} 
$type = $a['mime']; 

if($type != 'image/gif' && $type != 'image/jpeg' && $type != 'image/png') { 
    unlink($filePath); 
    return false; 
} 
+0

я getimagesize, потому что я собирался для изменения размера изображения. Там также есть «тип» в массиве файлов: $ _FILES ['sweaterpic'] ['type'] – leitning

+0

may u are right ... bt объяснить в моем коде ... как передавать данные с помощью сообщения, используя ajax..in code где & какие изменения я должен делать ..... plz..help –