Jquery AJAX和2个以上变量的问题

时间:2011-07-17 09:23:06

标签: php jquery ajax

我正在尝试向我正在制作的网站添加一个告诉朋友部分,但我很难通过带有AJAX的URL发送超过2个变量。这是我目前的代码:

    jQuery("#tellafriendsubmit").click(function() {

        var email = jQuery('#tellafriendemail').val();
        var name = jQuery('#tellafriendname').val();

            jQuery.ajax({
          type: "POST",
      url: "http://www.example.co.uk/tell-a-friend-processor-page/?postname=<?php echo $post_name; ?>&name=name&email="+email,

      success: function(msg){ 
            alert('Your tell a friend recommendation has been sent. Thank you for recommending us.');

      }
    });

});

如果我删除'&amp; name = name'部分,以便我只发送邮件名称和电子邮件地址,它工作正常,但我需要发送名称,所以我可以写'亲爱的$ name .. ..'

如何发送额外的第三个变量?谢谢你的帮助

编辑:

我在tellafriendprocessor页面中使用的部分如下所示:

$ email = $ _POST ['email']; $ post_name = $ _GET ['postname']; $ name = $ _POST ['name'];

             $to = $email;
             $subject = "Example - Tell a friend";
             $body = "Dear $name http://www.example.co.uk/ads/$post_name";

             if (mail($to, $subject, $body, $headers)) {

              } else {

              }

4 个答案:

答案 0 :(得分:1)

您可以尝试将它们作为POST请求正文的一部分发送(使用data属性),这将确保正确编码这些值:

var email = jQuery('#tellafriendemail').val();
var name = jQuery('#tellafriendname').val();
jQuery.ajax({
    type: 'POST',
    url: 'http://www.example.co.uk/tell-a-friend-processor-page/?postname=<?php echo $post_name; ?>',
    data: { name: name, email: email },
    success: function(msg) { 
        alert('Your tell a friend recommendation has been sent. Thank you for recommending us.');
    }
});

在服务器端,请确保您使用$_POST哈希($_POST["name"]$_POST["email"])来阅读它们。

答案 1 :(得分:1)

您可以使用GET和POST方法将参数发送到使用AJAX的页面

数据:{id:'id',名称:'name'},//使用ajax发送的多个数据

这是一个例子

$。AJAX({         键入: “GET”,         缓存:假的,         网址:“的welcome.php”         data:{id:'id',name:'name'},//使用ajax发送的多个数据         成功:function(html){           $('#add')。val('data sent sent');           $( '#味精')HTML(HTML);         }       });

答案 2 :(得分:0)

您需要将name移到字符串之外。要添加更多键值对,只需将它们附加到查询字符串:&amp; key = value

url: "http://www.example.co.uk/tell-a-friend-processor-page/?postname=<?php echo $post_name; ?>&name="+name+"&email="+email

答案 3 :(得分:0)

尝试使用这样的params对象:

$.post("/tell-a-friend-processor-page/", { name: "John", email: "<?php echo $post_email; ?>", post_name: "<?php echo $post_name; ?>" },
function(data) {
     alert("Data Loaded: " + data);
});