正在分析Javascript中文本区域的输出


Parsing output of textarea in Javascript

我有一个HTML表单,里面有一个文本区域。

当输入带有某些输入的文本时,我的Javascript会出现故障,无法加载。

表单提交给一个PHP脚本,该脚本输出下面的javascript。

我该怎么解决这个问题?

function confirmsms() {
var redirect = confirm("Er zullen 791 smsjes worden verzonden, klik op OK om  door te gaan");
if (redirect == true) {
    window.location.href = 'send.phpregio=%&vakgebied=Loodgieter&disciplines=&bericht=aasdasd
asdasda
sdasdasd'; 
}
}
</script>

更改为:

function confirmsms() {
    var redirect = confirm("Er zullen 791 smsjes worden verzonden, klik op OK om  door te gaan");
    if (redirect == true) {
        window.location.href = 'send.php?'
        + 'regio=%&vakgebied=Loodgieter&disciplines=&'
        + 'bericht=aasdasdasdasdasdasdasd'; 
    }
}

更新:您的php变量$b‌​ericht中似乎有换行符。让我们对该变量进行清理以删除空格和换行符,如下所示:

$bericht = str_replace(array(' ', "'n", "'t", "'r"), '', $bericht);

然后您可以像以前一样使用您的代码。为了安全起见,我会清除所有要直接放入javascript中的php变量。

<HTML>
    <HEAD>
        <script type='"text/javascript'">
            function confirmsms() {
                var redirect = confirm('"Er zullen $count smsjes worden verzonden, klik op OK om door te gaan'");
                if (redirect == true) {
                    window.location.href = 'send.php?regio=$regio&vakgebied=$vakgebied2&disciplines=$disciplines&bericht=$b‌​ericht';            }
             } 

看起来问题是您没有对URL进行编码!在您的问题中,您使用GET方法传递数据,您的数据将是URL本身的一部分!

发送前只需使用encodeURI()!所以你的代码应该看起来像

function confirmsms() { var redirect = confirm("Er zullen 791 smsjes worden verzonden, klik op OK om  door te gaan"); var encodedValue = encodeURI("YOUR TEXTAREA VALUE HERE"); if (redirect == true) {     window.location.href = 'send.php?VAR1=VAL1&VAR2=VAL2'; }}

在后端,您可以使用字符串urldecode(string$str)解码URL

希望你这就是你要找的!