0

こんにちは、このjqueryプラグインを使用してajaxで画像をアップロードしています

これは私のhtmlコードです

 <form name="image_form" id="imageform" method="post" enctype="multipart/form-data" action='ajaximage.php'>

   <input type="file" name="image" id="image" tabindex="2" value="<?=$_POST['image']?>" />
</form>
  <div id='preview'>
  </div>

これはjqueryコードです

$(document).ready(function() 
{ 
$('#image').live('change', function()   
{ 
$("#preview").html('');
//$("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
$("#imageform").ajaxForm(
{
target: '#preview'
}).submit();
});
}); 

これはajaximage.phpコードです

<?php
//include('db.php');

echo "AAAA";
session_start();
$session_id='1'; // User session id
$path = "images/";

$valid_formats = array("jpg", "png", "gif", "bmp","jpeg");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
$name = $_FILES['image']['name'];
$size = $_FILES['image']['size'];
echo "bb".$name;
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['image']['tmp_name'];
if(move_uploaded_file($tmp, $path.$actual_image_name))
{
    echo "ccc";
//mysql_query("UPDATE users SET profile_image='$actual_image_name' WHERE uid='$session_id'");
echo "<img src='images/".$actual_image_name."' class='preview'>";
}
else
echo "failed";
}
else
echo "Image file size max 1 MB"; 
}
else
echo "Invalid file format.."; 
}
else
echo "Please select image..!";
exit;
}
?>

原因はわかったのですが、解決方法がわかりません。その理由は、私には2つのフォームがあるからです

<form name="main_form" id="form" action="<?=$action?>" name="pkgfrm" method="post" enctype="multipart/form-data">

この下には、 First name 、 Age などの多くのフィールドがあり、他の1つのフォームもこのフォームの下にあります

<form name="image_form" id="imageform" method="post" enctype="multipart/form-data" action='ajaximage.php'>

プラグインが機能していない 2 つのフォーム タグが原因です。しかし、私は両方のフォームが必要です。どうすればこれを行うことができますか。お願い助けて

4

1 に答える 1

-1

ネストされたフォームを使用しない限り、問題にはなりません。

于 2013-05-22T20:39:17.073 に答える