2015-10-09 35 views
0

我得到正確的saveID,但TemplateData和TitleData它只複製第一行數據,即使我改變爲別的東西。 saveID是數據的唯一ID。我需要的是當我改變它捕獲數據而不是第一列數據。如何編輯循環MySQL數據?

 <script type="text/javascript"> 
     $(document).ready(function() { 

      $(".save_button").click(function (e) { 
       e.preventDefault(); 
       var saveID =$(this).val(); 
       var url_tna = "<?php echo $_SESSION['url_address'];?>mods/agent_management/code/"; 


       var TitleData =$("#TitleData").val(); //build a post data structure 
       var TemplateData =$("#TemplateData").val(); 
       var IdData =$("#IdData").val(); 
       alert(saveID); 
       alert(TemplateData); 
       alert(TitleData); 
       var JsonData = {TitleData: TitleData, TemplateData: TemplateData, saveID: saveID}; 

       jQuery.ajax({ 
        type: "POST", // Post Get method 
        url: url_tna+"email_template_response.php", //Where form data is sent on submission 
        dataType:"text", // Data type, HTML, json etc. 
        data:JsonData, //Form variables 
        success:function(response){ 
         window.location.reload(true); // reload before append 
         $("#responds").append(response); 
         document.getElementById("contentText").value = ""; 
        }, 
        error:function (xhr, ajaxOptions, thrownError){ 
         alert(thrownError); 
        } 
       }); 
      }); 
     }); 
     </script> 

    <table> 

<tr> 
       <td>No</td> 
       <td>Title</td> 
       <td>Template</td> 
       <td>Recipents</td> 
       <td>Schedule</td> 
       </tr> 
    <?php $i=1; while ($row = mysql_fetch_array($result)) { ?> 


    <tr> 
    <td><?php echo $i; ?></td> 

     <td><textarea type="textarea" id="TitleData" name="TitleData" class="1"><?php echo $row['title'];?></textarea></td> 
     <td><textarea type="textarea" id="TemplateData" name="TemplateData" class="1"><?php echo $row['template'];?></textarea></td> 
     <td><button id="recipant"><a id="myLink" href="email_template.php?id=<?php echo $row['id']; ;?>" target="_blank">Open Recipant</a> </button></td> 
     <td><button id="shedule"><a id="myLink" href="email_schedule.php?id=<?php echo $row['id']; ;?>" target="_blank">Open Shedule</a></button></td> 
     <td><input type="hidden" id="IdData" class="save_button1" name="txtLink" value="<?php echo $row['id']; ?>"></input></td>  
     <td><button id="SaveTemplate" name="SaveTemplate" class="save_button" value="<?php echo $row['id'];?>"><a href="#" style="display:block" class="button insertcolumn" id="<?php echo $row['id'];?>">Save</a></button></td> 
     <td><button >Sent Mail Now</button></td> 
    </tr> 
    <? $i++; }?> 

</table> 

     if (!empty($saveID)) { 
     $sql2 = "UPDATE at_agent_template set title = '$TitleData', template= '$TemplateData' where id = '$saveID'"; 
     $result2 = mysql_query($sql2); 
     } 

enter image description here

+0

也許你應該在你的html上使用UNIQUE ID! – Anonymous0day

+0

@ Anonymous0day那是我想要的..它來自於mysql循環..如何使它獨一無二 – airi

+0

向我們展示你的html,我們將幫助你,因爲我認爲你的問題來自你的html – Anonymous0day

回答

1

您的文本框的ID是相同的,所以請加上id文本框 像

<td><textarea type="textarea" id="TitleData<?php echo $row['id'];?>" name="TitleData" class="1"><?php echo $row['title'];?></textarea></td> 

,並獲取像

var TitleData = $("#TitleData"+saveID).val(); 
0

問題是,你又在你的HTML重複的ID,所以當你使用ID選擇將只得到第一個元素的參考。

的解決方案是使用類,或任何其他選擇來選擇這些元素,因爲你有一個表結構,當你編輯按鈕點擊某一行上,你需要得到在同一行中元素的值。此外,我看到你的輸入元素都有名字,所以我們可以用這個來代替該ID來獲得像

$(".save_button").click(function (e) { 
    e.preventDefault(); 
    var saveID = $(this).val(); 
    var url_tna = "<?php echo $_SESSION['url_address'];?>mods/agent_management/code/"; 


    var $tr = $(this).closest('tr'); 
    var TitleData = $tr.find("input[name='TitleData']").val(); //build a post data structure 
    var TemplateData $tr.find("input[name='TemplateData']").val(); 
    var IdData = $tr.find("input[name='dData']").val(); 
    alert(saveID); 
    alert(TemplateData); 
    alert(TitleData); 
    var JsonData = { 
     TitleData: TitleData, 
     TemplateData: TemplateData, 
     saveID: saveID 
    }; 

    jQuery.ajax({ 
     type: "POST", // Post Get method 
     url: url_tna + "email_template_response.php", //Where form data is sent on submission 
     dataType: "text", // Data type, HTML, json etc. 
     data: JsonData, //Form variables 
     success: function (response) { 
      window.location.reload(true); // reload before append 
      $("#responds").append(response); 
      document.getElementById("contentText").value = ""; 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      alert(thrownError); 
     } 
    }); 
}); 
+0

對不起,當我點擊什麼都沒有發生..甚至警報不工作.. – airi

+0

你能分享生成的html –

+0

當我改變這部分..它也沒有工作.. var $ tr = $(this).closest('tr'); var TitleData = $ tr.find(「input [name ='TitleData']」)。val(); //建立一個post數據結構 var TemplateData $ tr.find(「input [name ='TemplateData']」)。val(); – airi

0

值嘗試用此部分:

<?php $i=1; while ($row = mysql_fetch_array($result)) { ?> 
<td><?php echo $i; ?></td> 

     <td><textarea type="textarea" id="TitleData_<?php echo $i; ?>" name="TitleData" class="1"><?php echo $row['title'];?></textarea></td> 
     <td><textarea type="textarea" id="TemplateData_<?php echo $i; ?>" name="TemplateData" class="1"><?php echo $row['template'];?></textarea></td> 
     <td><button id="recipant_<?php echo $i; ?>"><a id="myLink" href="email_template.php?id=<?php echo $row['id']; ;?>" target="_blank">Open Recipant</a> </button></td> 
     <td><button id="shedule_<?php echo $i; ?>"><a id="myLink_<?php echo $i; ?>" href="email_schedule.php?id=<?php echo $row['id']; ;?>" target="_blank">Open Shedule</a></button></td> 
     <td><input type="hidden" id="IdData_<?php echo $i; ?>" class="save_button1" name="txtLink" value="<?php echo $row['id']; ?>"></input></td>  
     <td><button id="SaveTemplate_<?php echo $i; ?>" name="SaveTemplate" class="save_button" value="<?php echo $row['id'];?>"><a href="#" style="display:block" class="button insertcolumn" id="<?php echo $row['id'];?>">Save</a></button></td> 
     <td><button >Sent Mail Now</button></td> 
    </tr> 
    <? $i++; }?> 

if (!empty($saveID)) { 
$sql2 = "UPDATE at_agent_template set title = '$TitleData', template= '$TemplateData' where id = '$saveID'"; 
$result2 = mysql_query($sql2); 
} 
+0

而像@阿倫P Johny說>解決方案是使用類,或任何其他選擇器來選擇這些元素< – Anonymous0day