2015-11-28 45 views
-2

我在PHP中有一個循環表單,我想通過javascript提交。問題是,每個ID似乎都需要他們自己的單獨的JavaScript提交代碼。set javascript div id to increasing var

PHP代碼:

$i = 0; 
while ($i < $num) { 
    $j = $i + 1; 
    echo "<form id='form".$j."' name='form3' method='post' action='post.php'> 
    <input type ='checkbox' name='box1' value = 'useless' >&nbsp;Useless</input> 
    <input type='submit' name= 'submit' id='submit' value='Submit' /> 
    </form>"; 
    $i++; 
} 

的Javascript不工作:

var x = 2; 
var y = '<?php echo $num; ?>'; 
while (x <= y) { 
    $(document).ready(function() { 
     $("#form" + x).on("change", "input:checkbox", function() { 
      $("#form" + x).submit(); 
     }); 
    }); 
    x++; 
+0

你需要增加你的while循環中的X,如果控制檯日誌這是是一個無限循環,但在相同的元素。 – David

+0

php在js中?你怎麼稱呼js功能?什麼樣的預期結果?你目前的結果是什麼? –

回答

0

因爲要創建一個爲每個表單提交按鈕,但你似乎想觸發提交時的複選框更簡單的解決方案可能是:

$('[name="box1"]').change(function() { 
 
     $(this).next().click(); 
 
}); 
 

 

 
// this is just here to demonstrate that all of the forms will not be submitted at once in response to your comment 
 
$('form').submit(function(e){ 
 
     e.preventDefault();  
 
     $('#result').append('submitted form with id '+ $(this).attr('id')+'<br>'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<form id="form1" name="form1" method="post" action="post.php"> 
 
    <input type="checkbox" name="box1" value="useless"/>Useless 
 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
 
</form> 
 

 

 

 
<form id="form2" name="form2" method="post" action="post.php"> 
 
    <input type="checkbox" name="box1" value="useless"/>Useless 
 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
 
</form> 
 

 

 
<form id="form3" name="form3" method="post" action="post.php"> 
 
    <input type="checkbox" name="box1" value="useless"/>Useless 
 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
 
</form> 
 

 
<br> 
 
<div id="result"><div>

順便說一句,<input type ='checkbox' name='box1' value = 'useless' >&nbsp;Useless</input>應該是<input type ='checkbox' name='box1' value = 'useless' />&nbsp;Useless

輸入是void element並沒有關閉標籤

+0

但它然後會提交​​所有的循環表格,這不是唯一的值被提交有一個隱藏的變量值,當發佈時將只更新提交表單的mysql列。如果我像你所建議的那樣做,它會更新所有這些(27),而不僅僅是一個。 – Celeste

+0

@Celeste這是不正確的,提交按鈕是在一個表單內,當單擊該按鈕時,它只會提交父表單,它不會提交其他26個表單。我已經更新了我的答案,以證明這個 – DelightedD0D

+0

提交按鈕沒有觸發JavaScript,它將它發送到post.php – Celeste