仅在首次单击时添加动态行

时间:2013-08-08 02:10:50

标签: php javascript jquery mysql

我有一个应用程序似乎工作得很好,除了一个我似乎无法弄清楚的小故障。我希望能在这里提供一些帮助。

我有一个表可以动态添加行。有两种方法可以添加行,有些方法有一个加载预定数据的复选框,或者有一个图像,它会在表格中添加一个空白行。

该复选框效果很好,但图像链接仅在第一次工作,而不是下一次。

这是图像行:

<img src="img/plus.png" width="25" height="25" id="btnAddRow" title="Add New Row" class="idfirst alternativeRow" />

alternativeRow是从这里的代码生成的:http://www.examplet.buss.hk/jquery/table.addrow.php(示例#10,但更复杂),这一行是这样的:

$(".alternativeRow").btnAddRow({oddRowCSS:"oddRow",evenRowCSS:"evenRow"});

jquery代码的“idfirst”块是这样的:

$(document).ready(function(){
$(".idfirst").click(function(){
    result = 0;
    id = 0;
    jQuery.ajax({
        url: 'getItemID.php?q=<?php echo $q; ?>',
        success: function(result) {
            id = result;
            if(result.isOk == false)
                alert(result.message);
        },
        async: false
    });          
    window.location.href='page.php?q=<?php echo $q; ?>&id=<?php echo $id; ?>';     
});
});

我进行重新加载,因为我希望在getItemID.php中创建的新数字能够动态加载。这很重要,因为它也会添加到在新行中创建的链接中。 getItemID中的代码如下:

$q = $_GET['q'];
$description = $_GET['description'];
$rate = $_GET['rate'];
$hours = $_GET['hours'];

$query = "INSERT INTO items (q, description, hours, rate) VALUES ('".$q."','".$description."','".$hours."','".$rate."')";

$results = mysql_query($query) or die(mysql_error());
$nextId = mysql_insert_id();

echo $nextId;

所以我的问题是,当我第一次点击图片链接时,一切都很好,我得到了空白行,动态行中的链接正常工作,生活很美好。

但是当我第二次按它时,页面会重新加载,但我没有得到我的新行。它只会在刷新之前返回现有的行。

我想知道是否有人能看到我做错了什么并提出任何建议。 (是的,我知道其中一些可能不是使它工作的理想方式,但是大多数情况下它的工作方式是我需要的......而且我花费了大量的时间来完成所有这些工作零件相处。)

提前感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

我确实设法搞清楚了。

我在IE中对此进行了测试,用户将全部使用。我使用的Firefox中存在同样的问题。

我发现了这篇文章http://www.electrictoolbox.com/jquery-json-ajax-caching/,一旦我在Chrome中尝试过它,就会发现这是一个浏览器问题。所以我实施了以下解决方案:

我添加了

$.ajaxSetup({ cache:false });

到我的脚本的顶部,并且为了好的措施,添加了

cache: false,

到我的ajax电话。

现在它无处不在。