我正在尝试传递一个可能包含“+”符号的变量,但是在传入下一页后它会被连接起来。
假设我传递'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>
答案 0 :(得分:2)
您正在为data
传递一个字符串,这意味着您要对其进行正确编码(但未正确编码)负责。碰巧在URI编码中,+
表示空格。
只需将其作为对象传递,jQuery将为您正确编码:
data: {txt1: txt1}
答案 1 :(得分:1)
你必须在传递它之前对url进行url编码,就像url参数一样
var txt1 = encodeURIComponent($("#userquery").val());
答案 2 :(得分:-1)
尝试这样
"text"+ '+' + "text2"