2015-10-09 32 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