0

我正在关注本教程,所以我的问题是:我这里有这段代码,它是一些表格。

<tr id="<?php echo $id; ?>" class="edit_tr">

<td class="edit_td">
<span id="first_<?php echo $id; ?>" class="text"><?php echo $kodi; ?></span>
<input type="text" value="<?php echo $kodi; ?>" class="editbox" id="first_input_<?php echo $id; ?>" /&gt;
</td>

<td class="edit_td">
<span id="last_<?php echo $id; ?>" class="text"><?php echo $vlera; ?></span>
<input type="text" value="<?php echo $vlera; ?>" class="editbox" id="last_input_<?php echo $id; ?>"/>
</td>

</tr>

现在,这是脚本:

<script type="text/javascript">
$(document).ready(function()
{
$(".edit_tr").click(function()
{
var ID=$(this).attr('id');
$("#first_"+ID).hide();
$("#last_"+ID).hide();
$("#first_input_"+ID).show();
$("#last_input_"+ID).show();
}).change(function()
{
var ID=$(this).attr('id');
var kodi=$("#first_input_"+ID).val();
var vlera=$("#last_input_"+ID).val();
var dataString = 'id='+ ID +'&kodi='+kodi+'&vlera='+vlera;
$("#first_"+ID).html('<img src="load.gif" />'); // Loading image

if(first.length>0&& last.length>0)
{

$.ajax({
type: "POST",
url: "table_edit_ajax.php",
data: dataString,
cache: false,
success: function(html)
{
$("#first_"+ID).html(first);
$("#last_"+ID).html(last);

我可能没有正确传递变量..因为它不会保存它们,所以查询不会执行。谢谢

4

2 回答 2

0

jQuery 在 ajax 中传递表单字段的最简单方法是使用serialize

data: $("form").serialize();

另一个问题是您使用了两个变量,firstlast您没有在任何地方定义它们。

于 2013-03-01T13:48:15.977 回答
0

试试这个代码:

$(function() { // This makes the same than $(document).ready();
    $(".edit_tr").each(function() { // Instead of assign the click event, we loop through each element
        var $element = $(this);
        var id = this.id;
        var $first = $('#first_' + id);
        var $last = $('#last_' + id);
        var $firstInput = $('#first_input_' + id);
        var $lastInput = $('#last_input_' + id);
        $element.click(function() {
            $first.hide();$last.hide();
            $firstInput.show();$lastInput.show();
        }).change(function() {
            $first.html('<img src="load.gif" />');
            // Here you have an if, but those elements are not defined in the script...
            // if (first.length > 0 && last.length > 0) {
            $.post("table_edit_ajax.php", {
                id : id,
                kodi : $firstInput.val(),
                vlera : $lastInput.val()
            }, function(html) {
                // Here again the two vars not defined
                //$first.html(first);
                //$last.html(last);
            });
            // }
        });
    });
});
于 2013-03-01T14:37:40.383 回答