在JS变量中传递'+'符号

时间:2016-08-03 11:20:56

标签: javascript php jquery ajax

我正在尝试传递一个可能包含“+”符号的变量,但是在传入下一页后它会被连接起来。

假设我传递'2 + 2',从first.php到second.php,在second.php上显示为'2 2'。但我只需要它为'2 + 2'。同样适用于'2-2'。这是我的 first.php

<script>
$(document).ready(function() {
    $("#sub").click(function() {
 var txt1 = $("#userquery").val(); //textbox value
        $.ajax({
            type: "POST",
            url: "second.php",
            cache: false,
            data: "txt1=" + txt1,    
            dataType: "html",
            success: function(result) {
                $("#sqlresult").html(result);
            }
        });
    });
});
</script>    
<textarea  id='userquery'  rows='5' cols='115' spellcheck='false' wrap='off' placeholder='Write SQL query here..'></textarea>
<input id='sub' type='submit'   value='Execute' title='Ctrl+Enter'>
<hr><div id='sqlresult'><?php include('second.php'); ?></div>

3 个答案:

答案 0 :(得分:2)

您正在为data传递一个字符串,这意味着您要对其进行正确编码(但未正确编码)负责。碰巧在URI编码中,+表示空格。

只需将其作为对象传递,jQuery将为您正确编码:

data: {txt1: txt1}

答案 1 :(得分:1)

你必须在传递它之前对url进行url编码,就像url参数一样

var txt1 = encodeURIComponent($("#userquery").val()); 

答案 2 :(得分:-1)

尝试这样

"text"+ '+' + "text2"