2016-06-21 48 views
0

我有一個PHP MVC項目。我從數據庫中讀取數據併爲每條記錄創建一個表單。我想在按下按鈕的時候進行更新。但我混淆瞭如何在JavaScript函數中訪問表單元素。我爲每條記錄使用了一個索引,但是我無法克服如何在javascript中找到它。在foreach循環中使用ajax發佈表單數據onclick事件

我的PHP文件:

$index = 1; 
foreach ($categories as $category) { 
    ?> 
    <div class="row"> 
     <form id="updateForm"> 
      <div style="visibility: hidden"> 
       <input type="text" name="editId<?php echo "$index"?>" id="editId<?php echo "$index"?>" value="<?php echo $category['id']; ?>"> 
      </div> 
      <div class="form-group col-md-4"> 
       <input type="text" class="form-control" name="editTitle<?php echo "$index"?>" id="editTitle<?php echo "$index"?>" 
         value="<?php echo $category['title']; ?>"> 
      </div> 
      <div class="form-group col-md-4"> 
       <select class="form-control" name="editline<?php echo "$index"?>" id="editline<?php echo "$index"?>"> 
        <option disabled selected value="">Sıra</option> 
        <?php 
        for ($i = 1; $i <= $rows; $i++) { 
         ?> 
         <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
         <?php 
        } 
        ?> 
       </select> 
      </div> 
      <div class="form-group col-md-1"> 
       <a class="btn btn-success" id="btnUpdateSubmit" name="btnUpdateSubmit" href="<?php echo BASE_URL; ?>/category" 
        onclick="updatecategory();"><i class="fa fa-check"></i> Kaydet</a> 
      </div> 
      <div class="form-group col-md-1"> 
       <a class="btn btn-danger" href="#"><i class="icon-trash icon-large"></i> Sil</a> 
      </div> 
     </form> 
    </div> 
<?php 
$index++; 

我的javascript函數:

function updatecategory() { 
    if (window.XMLHttpRequest){ 
     xmlhtpp = new XMLHttpRequest(); 
    } 
    else { 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhtpp.onreadystatechange = function() { 
     if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
      document.getElementById("existCategories").innerHTML = xmlhtpp.responseText; 
     } 
    }; 
    xmlhtpp.open("POST", '<?php echo BASE_URL ?>/category'); 
} 
+1

只是通過指數作爲參數函數調用也是如此像onclick =「updatecategory($ i);並給每個選項一個獨特的ID與索引像

回答

0
  1. 從表單中刪除ID - ID必須是唯一的。

  2. 更改鏈接提交按鈕

  3. 添加事件處理程序:


window.onload=function() { 
    var forms = document.getElementsByTagName("form"); 
    for (var i=0;i<forms.length;i++) { 
    forms[i].onsubmit=function() { 
     updateCategory(this); 
     return false; // cancel submit 
    } 
    } 
} 

然後有

function updatecategory(theForm) { 
    var categoy = theForm.elements[0].value; // editIdxxx 
+0

我試過但事件處理程序沒有工作。我的意思是我在事件處理程序中使用了alert,但沒有發生任何事 –

+0

服務器是否接受呼叫?控制檯中的任何錯誤? – mplungjan

+0

不,沒有錯誤。什麼都沒發生。 –