2013-11-01 23 views
0

$ divCreator下面是一個變量。它可以從1到10的值。我在php中使用下面的html內的while循環。現在我想要做的是,我想將兩個變量傳遞給一個PHP腳本。一個是quesID,另一個是testID。我已經有了testID的值。但問題出現在quesID中。我總是將quesID值設置爲1.這是從while循環構建的第一個窗體的值。 的HTML代碼是:總是獲取第一個輸入元素的值。麻煩與JQuery Ajax

<form id="form_create_ques" action="" method="get"> 
    <div class="grid-6 grid grey"> 
     <input id="quesid_form" name="quesID" type="text" value="<?php echo $divCreator; ?>" /> 
     <input type="submit" class="button_create_ques" value="<?php echo $divCreator; ?>" /> 
    </div> 
</form> 

jQuery代碼:(我的jQuery是相當薄弱的,所以我需要一些幫助)。

<script type="text/javascript"> 
$(document).ready(function(){ 
    $(".button_create_ques").click(function(){ 
    var form_data = $("#form_create_ques").serialize(); //Always returns quesID=1 
    alert(form_data); 
    $.ajax({ 
    url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>", 
    type: 'GET', 
    data: form_data, 
    success: function() 
      { 
      //Do something.. 
      } 
     }); 
     return false; 
     }); 
    }); 

如果您有任何更好的或替代的解決方案,那麼請你解釋一下。我真的很感激。對不起,我還在學習Jquery。

+0

如果你outputing是HTML在一個循環中,你有多個元素具有相同的ID。這是不允許的,ID必須是唯一的。 – Barmar

+0

那麼如何添加類似

」>>
? 但是,如何將此值傳遞給jquery函數。我將如何告訴它它是哪個唯一的ID? – anshp

回答

1

id值在文檔中必須是唯一的。由於您的表單全部具有相同的id,因此使用選擇器(如$("#form_create_ques"))將始終返回此id的第一個匹配項。

您可以完全去除id並使用此基礎上的按鈕來獲得form

var form_data = $(this).closest("form").serialize(); 
+0

Aww太棒了!就是這個!非常感謝。我會接受答案。它說我無法接受接下來7分鐘的答案。我會盡快做到。 非常感謝。 :) – anshp

1

有2點可能的方式:

1:添加新的hidden領域形成:

<input type="hidden" name="quesID" value="<?php echo addslashes(htmlspecialchars($_GET['testID'])); ?>" /> 

2:刪除data: form_data,並修改:

url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>&" + form_data, 
+0

感謝您的回覆:) – anshp

1

由於ID必須是唯一的,因此無法爲您的所有表單提供相同的ID。因此,請忽略ID。

<form action="" method="get"> 
    <div class="grid-6 grid grey"> 
     <input id="quesid_form" name="quesID" type="text" value="<?php echo $divCreator; ?>" /> 
     <input type="submit" class="button_create_ques" value="<?php echo $divCreator; ?>" /> 
    </div> 
</form> 

那麼你應該使用DOM遍歷函數在jQuery來找到對應於被點擊的按鈕形式:

$(document).ready(function(){ 
    $(".button_create_ques").click(function(){ 
    var form_data = $(this).closest("form").serialize(); 
    alert(form_data); 
    $.ajax({ 
    url: "create_ques.php?testID=<?php echo $_GET['testID']; ?>", 
    type: 'GET', 
    data: form_data, 
    success: function() 
      { 
      //Do something.. 
      } 
     }); 
     return false; 
     }); 
    });