这里我试图通过ajax向php页面发送多个变量值。
这里我调用javascript函数从表单中获取值并将值提交给ajax。在JavaScript中我从表单中获取多个值。现在我想将所有这些值传递给php页面。
我怎样才能实现这一目标?
这就是我所做的。
function sendInvite(){
var from_name = document.getElementById('invite_username').value;
var name_string = 'invitename='+ from_name;
var email = document.getElementById('friendemail').value;
var mail_string = 'friendemail='+ email;
var product_name = document.getElementById('invite_productname').value;
var product_string = 'invite-product-name='+ product_name;
var product_link = document.getElementById('invite_url').value;
var link_string = 'invite-url='+ product_link ;
$.ajax({
type : "post",
url : "legoland.php",
data: name_string,mail_string,
cache:false,
success : function(html){
$('.mail-message').html(html);
}
});
}
HTML:
<form name="invite-form">
<div class="col-md-4 col-lg-4">
<label class="control-label" for="friend">Enter email address</label>
<input type="email" class="form-control" name="friendemail" id="friendemail" placeholder="sam@uncle.com" required><br>
<?php
echo '<input type="hidden" id="invite_username" name="invitename" value="' . $_SESSION["user_name"] . '">' ;
echo '<input type="hidden" id="invite_url" name="invite-url" value="'.$_SERVER['REQUEST_URI'].'">';
echo '<input type="hidden" id="invite_productname" class="invite-product" name="invite-product-name">';
?>
<input type="button" name="submit" onclick="return sendInvite();" value="Invite" class="btn btn-primary">
</div>
</form>
PHP:
<?php
$name = $_POST['invitename'];
$mail = $_POST['friendemail'];
$product_name = $_POST['invite-product-name'];
$product_link = $_POST['invite-url'];
echo $name;
echo $mail;
echo $product_name;
echo $product_link;
?>
答案 0 :(得分:0)
来自手册:
数据 键入:PlainObject或String或Array 要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述)。
所以最简单的就是将数据更改为
data: { invitename: from_name, friendemail: email }
您也可以直接将值分配给数据变量
data: {
invitename: document.getElementById('invite_username').value,
friendemail: document.getElementById('friendemail').value
}
等