如何编辑循环MySQL数据?

i got correct saveID but TemplateData and TitleData it only copy first row data even i change to something else. saveID is unique id of the data. what i need is when i changed it capture the data not first column data.

        <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

your text box ids are same so please add id to textboxes like

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

and fetch like

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

The problem is you are again having duplicate IDs in your html, so when you use ID selector you will get only the first element reference.

The solution is to use class, or any other selector to select those elements, since you have a tabular structure when you click on the edit button on a row, you need to get the value of elements in the same row. Also I see that your input elements have name so we can use that instead of the ID to get the value like

$(".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);
        }
    });
});

Try with this part :

<?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);
}