Ajax:php部分在一个函数中需要引号,但在另一个函数中不需要引号

Ajax:php部分在一个函数中需要引号,但在另一个函数中不需要引号,php,ajax,Php,Ajax,我有两个不同的函数,它们都执行Ajax调用 在第一个示例中,我为变量数据分配了一个字符串:插入php会话变量的部分不在引号中 function insertMemberActivities() { var data = "memId=" + <?php echo $_SESSION['memberId'];?> + "&acts=" + <?php echo $_GET['actID'] ;?> + "&comments=" + document.

我有两个不同的函数,它们都执行Ajax调用

在第一个示例中,我为变量数据分配了一个字符串:插入php会话变量的部分不在引号中

function insertMemberActivities()
{
    var data = "memId=" + <?php echo $_SESSION['memberId'];?> + "&acts=" + <?php echo $_GET['actID'] ;?> + "&comments=" + document.getElementById('comments').value;

    $.ajax({
        dataType: 'json',
        url: 'json-responses.php?fct=insertMemberActivities',
        data: data,
        cache: false,
        success: sendMailToMember(),
        // error: myCallbackError
    });
};
函数insertMemberActivities()
{
var data=“memId=“++”&act=“++”&comments=“+document.getElementById('comments')。值;
$.ajax({
数据类型:“json”,
url:'json responses.php?fct=insertMemberActivities',
数据:数据,
cache:false,
成功:sendMailToMember(),
//错误:myCallbackError
});
};
第二个看起来很相似,但是我必须在php部分周围加上引号,否则它就不起作用了

function sendMailToMember()
{
    var data = "eventName=" + "<?php echo $_GET['eventName'];?>" +
               "&userEmail=" + "<?php echo $_SESSION['user'] ;?>" + 
               "&first=" + "<?php echo $_SESSION['first']; ?>" + 
               "&last=" + "<?php echo $_SESSION['last']; ?>";

    $.ajax({
        dataType: 'json',
        url: 'stcg-json-responses.php?fct=emailSendToVolunteer',
        data: data,
        cache: false
    });
}
函数sendMailToMember()
{
var data=“eventName=”+“”+
“&userEmail=“+”+
“&first=“+”+
“&last=“+”;
$.ajax({
数据类型:“json”,
url:'stcg json responses.php?fct=emailsendto志愿者',
数据:数据,
缓存:false
});
}

有人知道为什么会这样吗?

有些变量只包含字符和数字。这些不需要报价


其他人有特殊的字符,如@或。或空间。在这种情况下,表达式必须在引号之间。

那么秒成功发送Session的值,尽管PHP标记等是字符串?令人费解的。。。不确定为什么第二个变量可以正确地为您工作,但它们都在PHP文件中(我想是这样的)?是的,它们在同一个PHP文件中,并且所有4个变量都正确发送,但一旦我去掉引号,它就不工作了。第一个函数可以使用或不使用,因为我认为它可能与第一个函数中的两个变量(memberId和actID)是数字这一事实有关,但当我用第一个函数(第二个函数)替换memberId时,它也可以不使用引号。