2017-08-01 27 views
0

我有這個代碼的問題:提交阿賈克斯後的數據只能調用一次

function sendData(nr) { 
    var data = $("#myform"+ nr).serialize(); 

    // debug regeltje 
    console.log(data); 

    jQuery.ajax({ 
     url: "inc/update.php", 
     data: data, 
     type: "POST", 
     cache: false, 
     success:function(data) 
     { 
      if(data=='success') { 
       $("#container").load(window.location + " #container"); 
      // alert(data); 
      } else { 
       $("#container").load(window.location + " #container"); 
      } 
     } 
    }); 
} 

我第一次調用此函數它工作正常。 但第二次不是。 調試控制檯沒有結果。

這是我update.php文件

<?php 
session_start(); 
include("config.php"); 
include("function.php"); 
include("class.User.php"); 
$Func = new Func($db); 
if(isset($_SESSION['userData'])) { 
    $User = new GUser($db,$Func, $_SESSION['userData']['oauth_uid']); 
} 

//echo var_dump($_POST); 
if(isset($_POST['color'])) { 
    $query = $db->query('UPDATE user_fleet SET train_row_color = "'.$db->real_escape_string($_POST['color']).'" WHERE id = "'.$db->real_escape_string($_POST['id']).'"'); 
} 

我刷新整個頁面後,那麼它的工作再次罰款一次。

這是怎麼發生的?

我叫sendDatafleet.php

<tr style="background-color: #'.$res['train_row_color'].';"> 
      <form method="post" action="" id="myform'.++$i.'"> 
      <td> 
       <select class="test" name="color" onchange="sendData('.$i.');"> 
        <option value="0"></option> 
        <option value="ff0000" style="background-color: #ff0000"></option> 
        <option value="3000ff" style="background-color: #3000ff"></option> 
        <option value="36ff00" style="background-color: #36ff00"></option> 
        <option value="e400ff" style="background-color: #e400ff"></option> 
        <option value="fff000" style="background-color: #fff000"></option> 
       </select> 
      </td> 

這是一個while循環中。

真正的谷歌檢查和網絡I看到這個

enter image description here

enter image description here

正如你所看到的第二個屏幕沒有顯示形式。從HTML標籤

+1

函數調用從正在調用'送出數據()'。嘗試使用'$('body')。on('click','.buttonClass'function(){/ *您ajax here * /});' – Sinto

+0

編輯我的文章。以顯示它被調用的位置。 –

+0

它需要在選擇的onchange工作,對嗎? – Sinto

回答

0

刪除通話功能

  <select id="yourID" class="test" name="color"> 

做的JavaScript

$("#yourID").on('change',function(){ 
sendData($(this).val(); 
}); 
+0

如果我使用這個。表格根本不是發送。 –

+0

Console.log數據在sendData函數中檢查它是否被調用?如果是,那麼改變,然後從ajax方法中刪除cashe false行 – Osama