2015-01-02 46 views
1

我试过一切可能,没有什么似乎工作。我正在使用Bootstrap Data Table生成我的表格。我希望能够检查一个框点击删除按钮,并使用Ajax将数据发送到php。从javascript中删除双引号

除了删除用户之外,一切都可以工作,因为当它传递给php文件时,它会向url中的数据字符串添加双引号。

这里是JS代码:

.on('check.bs.table', function (e, row) { 
      $result.text('Are you sure you want to delete ' + JSON.stringify(row.username) + '?'); 
      var ids = document.getElementById("user-id").value = JSON.stringify(row.id); 
      ids = ids.replace (/\"/g, ""); 
     }) 

不管我做什么,它总是包括对IDS var双引号。

有人能给我一些建议吗?

+3

请检查'var'线,它有两个'='s,然后考虑该'var'和下一行的执行顺序... – Teemu

+2

我对引导数据表不熟悉,但如果您可以在URL中看到“ids”的值,它必须来自'#user-id.value',因为'ids'是事件处理程序的局部变量。 JS通过值传递所有内容,并且'#user-id'的值不会奇迹般地改变,如果你在'id user_id'之后改变'id'的值。 – Teemu

+2

你为什么要调用'JSON.stringify(row.id)'?这就在你的字符串附加引号 –

回答

2

感谢您的评论!

经过多一点研究后,我能够解决我的问题。问题是 - 我使用的是JSON.stringify,它将我的ID变成一个字符串,因此在其周围添加了""。为了防止这种情况发生,我只是删除JSON.stringify

这是我改变了: document.getElementById("user-id").value = row.id;

所以最终代码如下所示:

.on('check.bs.table', function (e, row) { 
     $result.text('Are you sure you want to delete ' + JSON.stringify(row.username) + '?'); 
     document.getElementById("user-id").value = row.id; 
    }) 
+1

这是一个更好的解决方案,正如我在评论中所建议的那样。但本着理解错误的精神......你期望'ids = ids.replace(/ \“/ g,”“);'更新你在上面的行中设置的DOM值。如果您在设置表单值之前完成了替换操作。 –