2011-07-08 23 views
0

我無法使用動態ID提交表單。以下是我的代碼。jquery表單提交動態ID不起作用

<script type="text/javascript" src="jquery-1.3.2.js"></script> 
<script type="text/javascript" src="jquery.form.js"></script> 
<script type="text/javascript"> 
var fval;  
var cvalue = "<?php echo $_POST['currentval']; ?>"; 
if(!(cvalue)) cvalue=0; 
$(document).ready(function() { 
$('#upload'+cvalue).submit(function() { 
    var options = { 
     target: '#message', 
     url:'process.php?sval='+cvalue, 
     success: function() { 
     alert("success"); 
     $('#uploader').html(''); 

     } 
    }; 
$(this).ajaxSubmit(options); 
return false; 
}); 
}); 
</script> 
<div id="message"></div> 
<?php 
for($i=0;$i<5;$i++) { 
    echo "<form action='#' method='post' name='upload' id='upload$i' enctype='multipart/form-data'>"; 
    echo "<input type='hidden' name='svalhid' id='svalhid' value='$i'>"; 
    echo "<input type='file' id='fl$i' name='filename".$i."up'>"; 
    echo "<input type='hidden' name='currentval' id='currentval' value='$i'>"; 
    echo "<input type='submit' name='uploads$i' value='Ok'><br>"; 
    echo '</form>'; 
} 
?> 

在這一行,$('#upload'+cvalue).submit(function() {

我不能得到cvalue。我無法確定這段代碼有什麼問題。任何人都請幫助我。

回答

1

檢查後續行

echo "<form action='#' method='post' name='upload' id='upload$i' enctype='multipart/form-data'>"; 

難道你真的確定你打印出來的ID屬性的正確值

我認爲它存在較好的兩個方面:?

1日(我眼中最好的方法):

<?php 
for($i=0;$i<5;$i++) { 
?> 
    <form action='#' method='post' name='upload' id='upload<?php echo $i ?>' enctype='multipart/form-data'>"; 
    <input type='hidden' name='svalhid' id='svalhid' value='<?php echo $i ?>'>" 
    <input type='file' id='fl<?php echo $i ?>' name='filename<?php echo $i ?>up'>"; 
    <input type='hidden' name='currentval' id='currentval' value='<?php echo$i ?>'>" 
    <input type='submit' name='uploads<?php echo $i ?>' value='Ok'><br>" 
    </form>' 
<?php 
} 
?> 

第二:提到行更改爲以下:

echo "<form action='#' method='post' name='upload".$i."' id='upload".$i."' enctype='multipart/form-data'>"; 

注意:您定義的一對夫婦的形式使用相同的名稱。據我所知,屬性'name'是表單的主要屬性,而不是'id'屬性。

0

我沒有看到你分配除「」之外的任何東西或0到cvalue。另外,這兩個任務不在$(document).ready(function(){之外),因此在文檔完全加載之前執行該代碼可能會出現一些奇怪現象。將它們移動到document.ready調用內部並查看發生

+0

此外,試試這個,看看你的元素確實存在: 如果($(選擇)。長度> 0){ 警報( '的元素存在'); } –

+0

我把這兩行var cvalue =「<?php echo $ _POST ['currentval'];?>」;如果($('#upload'+ cvalue).length> 0){alert('元素存在');和 }裏面$(document).ready(function(){然後「元素存在」被提醒 – nithi

+0

很酷,很高興它的工作。繼續並在此頁面上標記回覆之一作爲答案... –

0

嘗試使用

var cvalue = "<?php echo $_GET['currentval']; ?>"; 

var cvalue = "<?php echo $_REQUEST['currentval']; ?>"; 

也可以嘗試什麼@reporter說一下表格編號:ID =「上傳 」$我。「 表單ID應該是一樣的一個在這裏引用:

$('#upload'+cvalue).submit(function() { 

例:

在JavaScript

$('#upload').submit(function() { 

然後形成應該是:

<form id="#upload" ... 

你應該肯定會發生一些事情。 嘗試安裝螢火蟲並使用console.log(variablehere)而不是alert(variablehere)。它更乾淨。

希望幫助