代码之家  ›  专栏  ›  技术社区  ›  arbithero

如何在moootools中通过ajax发送数据i_m中转义“+”?

  •  1
  • arbithero  · 技术社区  · 14 年前

    我正在构建一个简单的基于Web的计算器,它从HTML表单中获取公式,使用PHP在服务器上对其进行评估,并将结果发送回服务器。

    我正在使用MooTools通过 req.send Ajax操作。

    但是,每次在一个公式中有一个“+”时,在服务器获取的post数据中都看不到它。

    你知道为什么会发生这种事吗?我怎么能解决它?

    如:

    10 + 12 在HTML格式中 10 12 $_POST 数据。

    我使用的moootools send命令类似于

    <textarea name="equationTextArea">10+12</textarea>
    
    req.send("eqn="+$('equationTextArea').value);
    

    提交后,我明白了 $_REQUEST['eqn'] 作为 10 12 .

    3 回复  |  直到 14 年前
        1
  •  4
  •   CharlesLeaf    14 年前

    尝试使用函数 encodeURIComponent 覆盖文本值。它,嗯…URI对文本进行编码。

        2
  •  1
  •   Piskvor left the building Rohit Kumar    14 年前

    将表单编码设置为 multipart/form data -这是默认值 application/x-www-form-urlencoded 的替代方法,并且不将空格 编码为加号 >。

    示例 From the w3.org reference :

    <form action=“http://example.com/cgi/handle”
    enctype=“多部分/表单数据”
    method=“post”>
    < /代码> 
    R窗体编码为multipart/form-data-这是默认的替代方法application/x-www-form-urlencoded不编码空格变成一个加号+.

    例子from the w3.org reference:

    <form action="http://example.com/cgi/handle"
       enctype="multipart/form-data"
       method="post">
    
        3
  •  0
  •   m.edmondson    14 年前

    您的文本很可能需要 URLEncoded .