2013-05-29 85 views
-1

我有一些小問題,用jQuery做窗體。我會盡力解釋它,我可以做到最好。jQuery +表單問題

我有一個按鈕,當它被點擊時,它會產生一個新的輸入。我用jQuery成功完成了這個任務,命名輸入爲:image-1,image-2等。 問題是,當我提交表單時,添加了jQuery的輸入不能被頁面,獲取輸入值,說「未定義的變量」圖像-X「

我真的不知道爲什麼,beucase我這樣做,完全一樣的方式之前和工作,但現在它不。

希望你能幫助我這個問題!

感謝大家

對不起,忘了添加代碼!

這是我有: HTML

<form method="post" action="update.php?IdMant='.$mant.'" enctype="multipart/form-data"> 
<input type="hidden" name="id" value="'.$id.'" /> 
<tr> 
    <td align="right"><span id="ai">Insert Image</span></td> 
</tr> 
<tr> 
    <td id="images"> 
     <label>Image:</label><input type="file" name="image-1" /> Order:<input type="text" name="order-1" size="2"/> 
    <div class="clear"></div> 
    </td> 
</tr> 
<tr> 
<input type="hidden" name="numImages" value="1" id="numImages" /> 
    <td><input type="submit" value="Upload Image/s"></td> 
</tr> 
</form> 

jQuery代碼:

var i = 2; 
var n = 2; 
$(document).ready(function() { 
    $("#ai").click(function() { 
     $("#images").append("<label>Image:</label><input type='file' name='image-"+i+"' /> Order:<input type='text' name='order-"+i+"' size='2' /><div class='clear'></div>"); 
     $("#numImages").val(n); 
     n++; 
     i++; 
    }); 
}); 

所有這樣的作品好了,現在,PHP代碼:

for($i = 1; $i <= $_POST['numImages']; $i++) { 
if(!empty($_FILES['image-'.$i]['name'])) { 
    $name = $_FILES['image-'.$i]['name']; 
    $type = $_FILES['image-'.$i]['type']; 
    $folder = "img/"; 
    $folder = $folder.$name; 
    if($type == "jpeg" || $type == "jpg" || $type == "gif" || $type == "png") { 
     if(!move_uploaded_file($_FILES['image-'.$i]['tmp_name'], $folder)) { 
      $error .= "Error ocurred with ".$name." file<br />"; 
     } 
     else { 
      insert_image_to_db($_POST['id'], $folder, $_POST['order-'.$i]); 
     } 
    } 
    else { 
     $error .= "Type of image <b>".$name."</b> incorrect.<br />"; 
    } 
} 
} 
+0

很難說沒有一個水晶球。顯示一些東西 –

+0

你能發佈你的HTML代碼嗎? –

+0

您是否使用某種框架在服務器端創建表單?您是否在

中添加了輸入元素? – Andy

回答

0

你應該添加table標記並將其用於jQuery中。像下面

<input type="hidden" name="id" value="'.$id.'" /> 
<table id="mytable"> 
... 
<tr id="mytr"> 
    <td id="images"> 

而且

$("#mytable #mytr #images").append(...); 

編輯1:

沒有任何name像下面的屬性爲您submit input

<input type="submit" value="Upload Image/s" name="submit"> 

,你應該得到的輸入類似下面

if (isset($_POST['submit']){ 
... 
for($i = 1; $i <= $_POST['numImages']; $i++) { 
... 
+0

很好,謝謝,但是,添加了jQuery的輸入工作,不是在恢復PHP文件中的表單數據時。 我不知道這是因爲「頁面加載時未加載」,然後點擊提交時,它不會發送新的。 我應該提交新的提交文件來替換原文嗎? – Ardilla

+0

我編輯了我的答案。我在自己的'php'中用'action =「」'進行測試,並沒有得到任何錯誤。 – Amir

+0

我嘗試在提交中添加名稱,但沒有,以及,對於'action =「」'是什麼意思?我的行動進入頁面,所有的輸入都是通過郵政 – Ardilla