繁体   English   中英

将电子邮件地址的php数组传递给javascript

[英]pass php array of email addresses to javascript

我有一个包含需要传递给javascript函数的电子邮件地址的php数组,但是当javascript试图处理这些地址时,我收到了语法错误:与电子邮件地址中的'@'有关的非法字符错误...

我该如何解决? 有没有一种方法可以在将电子邮件地址传递给javascript之前将其转换为字符串? 还是在将数组传递给js之后需要遍历该数组,然后在js中创建一个新数组并将其转换为字符串?

好的,因此该数组是由用户使用复选框从列表中选择电子邮件地址创建的,然后将其发布到第二页。

这是在首页上创建数组的php代码:

while ($row = mysqli_fetch_array($students_results)) {
                        echo'<div class="form-group"><div class="checkbox"><label><input type="checkbox" name="parentsemails[]" value=' . $row['parent_email'] . '">' . $row['parent_name'] . ' (Student: '. $row['student_name'] . ')</label></div></div>';
                    }

然后将其发布到第二页以传递给js函数。 将数组分配给php变量的php是:

if (isset($_POST["parentsemails"])) {
            $pe = $_POST['parentsemails'];
        }

函数内部的JS代码:

email_a = new array(<?php echo implode(',', $pe); ?>);

电子邮件地址似乎已正确传递到JS,在错误日志中我可以看到各个电子邮件,但突出显示了非法字符...

任何帮助表示赞赏。

谢谢。

您没有将电子邮件用引号引起来,这会导致语法错误。

您可以手动添加引号,但可以改用json_encode函数。

json_encode用JSON编码PHP对象或数组。 由于JSON数组是有效的JavaScript数组,因此适合您的情况。

只需将JS行更改为:

email_a = <?php echo json_encode($pe); ?>;

正如其他人所说,在将字符串放入Javascript之前,您似乎需要将字符串用引号引起来。 这样的事情。

<?php
$_a = array();
foreach($pe as $str)
  $_a[] = "'${str}'";
?>
email_a = new array(<?php echo implode(',', $_a); ?>);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM