保留POST数据中的选项卡

时间:2010-04-24 09:39:22

标签: php javascript jquery html textarea

我需要通过POST数据保留textarea中的制表符。似乎没有办法区分$ _POST数组中的空格与标签,这真让我感到沮丧。

我在这里使用jQuery插件来允许在textarea中使用tab和shift + tab。 http://teddevito.com/demos/textarea.html

jQuery插件使用它作为Tab字符:

$.fn.tabby.defaults = {tabString : String.fromCharCode(9)};

出于某种原因,它显示了一个单独的空格而不是每个制表符,因此我的所有代码格式都丢失了:

<textarea name="field0" rows="26" cols="123"><?php
    echo $_POST['field0'];
?></textarea>

这也行不通。显然,在数据到达str_replace函数之前,标签会消失(第一个双引号是我在文本编辑器中按TAB时的结果):

<textarea name="field0" rows="26" cols="123"><?php
    echo str_replace("    ", "\t", $_POST['field0']);
?></textarea>

我需要制表符而不是多个空格的原因是因为我的应用程序包含在线代码编辑器。

有人有什么想法吗?我猜这个解决方案会涉及在通过POST发送之前用javascript修改数据,但我对如何开始没有任何想法。

1 个答案:

答案 0 :(得分:3)

嗯,这有点像用火箭筒杀死一只蚂蚁,但你可以在POST数据之前使用base64编码:

http://plugins.jquery.com/project/base64

并使用以下内容对其进行解码:

http://www.php.net/manual/en/function.base64-decode.php

它应该工作得非常好,但它会增加你请求的大小。