2011-10-04 50 views
0

我正在使用jquery.form.js的AjaxForm()調用來嘗試運行一個php腳本,它會將數據放入數據庫中,然後將其拉出。但是,如何使用jquery.form.js中的ajaxForm調用進行該調用?如何從使用Jquery.form.js的PHP調用中獲取數據?

* 更新:增加了一些代碼*

$('#profilepicbutton').live('change', function(){ 
    $("#preview").html(''); 
    $("#preview").html('<img src="loader.gif" alt="Uploading...."/>'); 
     $("#registerpt3").ajaxForm({target: '#preview'}).submit(); 
     /*$.post(
     "register3.php",{ 
      target:'#preview'}, 
      function(data){*/ 
       $("#preview").html(''); 
       $("#preview").append("<img src="+data+"></img>"); 
}); 

我的PHP代碼...

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") 
    { 
    $name = $_FILES['profilepicinput']['name']; 
    $size = $_FILES['profilepicinput']['size']; 
    if(strlen($name)) 
    { 
    list($txt, $ext) = explode(".", $name); 
    if(in_array($ext,$valid_formats)) 
    { 
     if($size<(1024*1024)) // Image size max 1 MB 
     { 
      $actual_image_name = time().$session_id.".".$ext; 
      $tmp = $_FILES['profilepicinput']['tmp_name']; 
      $fp  = fopen($tmp, 'r'); 
      $data = fread($fp, filesize($tmp)); 
      $data = addslashes($data); 
      fclose($fp); 
      if(mysql_query("insert into Personal_Photos (Email, Pics) values('$email', '$data')")) 
      { 
       $query="select Pics, MAX(ID) from Personal_Photos where Email='$email'"; 
       $result=mysql_query($query) or die("Error: ".mysql_error()); 
       $row=mysql_fetch_array($result); 
       header("Content-type: image/jpg"); 
       print($row['Pics']); 
      } 
      else 
      { 
       die('Invalid query: ' . mysql_error()); 
       echo "failed"; 
      } 
     } 
     else 
      echo "Image file size max 1 MB. Image Size:"+$size; 
    } 
    else 
     echo "Invalid file format.."; 
} 
else 
    echo "Please select image..! Bull shit".$email; 
exit; 

}

所以你說的數據應該馬上就回來汽車-magically?

當我調用ajaxForm時,我應該調用一個函數嗎?

UPDATE:請給一個例子

你好。我不想成爲那種不斷要求代碼示例的老兄,但是任何機構都有一個例子,可以調用ajaxForm()調用併成功獲取數據並將其發佈到頁面?我想不出該怎麼辦...我只是試圖爲

$('#profilepicbutton').live('change', function(){ 
    $("#preview").html(''); 
    $("#preview").html('<img src="loader.gif" alt="Uploading...."/>'); 
     $("#registerpt3").ajaxForm({ 
       target: '#preview', 
       success: function(data) 
       {         
        $("#preview").html(''); 
        $("#preview").append("<img src="+data+"></img>"); 
       } 
      }).submit(); 
}); 

當我使用Firebug要弄清楚什麼是數據,它告訴我,這是不確定的。真的很困惑。請幫忙。

回答

1

你只需要:$('#myFormId').ajaxForm();它應該自動地神奇地工作:) 你可以將任何標準的$ .ajax選項傳遞給ajaxForm(完成和成功的回調等)。

你可以在這裏看到完整的文檔:http://jquery.malsup.com/form/#getting-started

+0

我居然給了一個鏡頭。 php腳本打印一個從mysql調用返回的blob。但由於某種原因,當我在我的頁面上記錄數據時,它實際上顯示了我的php頁面。我會在一分鐘內顯示我的代碼。 – SoftwareSavant

+0

所以我應該用數據或其他東西調用函數... – SoftwareSavant