我有一个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变量$bericht
中似乎有换行符。让我们对该变量进行清理以删除空格和换行符,如下所示:
$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=$bericht'; }
}
看起来问题是您没有对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
希望你这就是你要找的!