2012-10-09 2 views
0

안녕하세요. 일부 이미지를 내 서버에 업로드하고 싶습니다. 그것은 다른 페이지로 ajax.load 페이지를로드하지 않을 때 작동합니다. 그래서 그것에 직접 링크로 잘 작동합니다. 그러나 링크를 클릭하고, 업로드 양식을 열고 사진을 업로드하고 싶습니다 (한 창에서 모두). 업로드하기 전에 페이지가 새로 고쳐 지거나 또 다른 문제가 발생했기 때문입니까? 이것을 해결하는 방법을 모른다.ajax에서 이미지 형식 업로드가 작동하지 않습니다.

코드 :

<?php 
include('includes/connect.php'); 

if(isset($_POST['uploadImg'])){ 
$extension = end(explode(".", $_FILES["file"]["name"])); 
$name = $_FILES["file"]["name"]; 

if (file_exists("upload/" . $_FILES["file"]["name"])) 
     { 
    mysql_query("INSERT INTO images (itemID,imgPath,imgName,imgExtension,imgAlt)    VALUES (".$_POST['itemNumber'].",'upload','".$name."','".$extension."','".$name."')")or die('kan niet uploaden'.mysql_error()); 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . $_FILES["file"]["name"]); 
     echo "Uw afbeelding is toegevoegd aan item".$_POST['itemNumber']; 
     echo "<a id='uploadNew' href='#'>Nog een item uploaden</a>"; 
     }     


mysql_query("INSERT INTO images (itemID,imgPath,imgName,imgExtension,imgAlt)    VALUES (".$_POST['itemNumber'].",'upload','".$name."','".$extension."','".$name."')")or die('kan niet uploaden'.mysql_error());  
} 

?> 
<form method="post" enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file" /> 
Toevoegen aan: 
<select name="itemNumber"> 
<? 
      $result = mysql_query("SELECT * FROM items"); 
       while($row = mysql_fetch_array($result)) 
        { 
         echo '<option name="itemVal" value="'.$row['itemID'].'">'.$row['itemTitle'].'</option>'; 
         echo "<br />"; 
        } 
     ?> 
</select> 
<input type="submit" name="uploadImg" value="submit" /> 
</form> 
+0

나는 제목과 당신은 직접 파일을 업로드하지 못할 –

+0

문제 사이의 관계를 이해하지 않습니다 ..이 링크에서,이 플러그인을 사용하여 이미지를 업로드하는 방법이 간단한 예제를 링크를 따라 아약스를 통해. 숨겨진 iframe 또는 다른 방법을 사용해야합니다. Google을 시작하면 다양한 솔루션과 플러그인이 도움이 될 것입니다. – prodigitalson

+0

이것은 인스턴트 이미지를 업로드하는 데 도움이됩니다.이 플러그인을 사용하십시오 http://www.malsup.com/jquery/form/ –

답변

0

문제는 AJAX가로드되기 전에 양식이 상위 페이지로 전송된다는 사실에서 비롯됩니다. 게시 한 부분 페이지는 두 번째 HTTP 요청을 통해 검색되며 POST 매개 변수가 설정되어 있지 않습니다.

가장 좋은 방법은 AJAX가로드 된 상위 페이지에 PHP 스크립트를 추가하는 것입니다. 또한 폼 요소에 "target"속성을 지정하면 요청을 처리하는 서버 페이지를 추적 할 수 있습니다.

관련 문제