我想将变量的值传递给ajaxForm数据。
value1 = "dynamic_value1";
value2 = "dynamic_value2";
$('form').ajaxForm({
data: {
key1: value1,
key2: value2
}
});
期待类似的事情:
date:{Key1:"dynamic_value1", Key2:"dynamic_value2"}
所以在php中我可以访问
echo $_POST['key1'];
====================== 完整的脚本
<script src="../../bin/addons/jquery-1.7.2.js"></script>
<script src="../../bin/addons/jquery.form.js"></script>
<script>
// jQuery Form-plugin
(function() {
var value1 = "dynamic_value1";
var value2 = "dynamic_value2";
$('.dummyForm1').ajaxForm({
data:{
key1: value1,
key2: value2
}
complete: function(xhr) {
txt = xhr.responseText;
alert(txt);
}
});
})();
</script>
<form class="dummyForm1" action="form-php.php" method="post">
<input type="submit" value="Hit!" />
</form>
形状php.php
<?
echo "Key1 value:". $_POST['key1'];
?>
答案 0 :(得分:6)
您在数据属性后缺少逗号。
试试这个:
(function () {
var value1 = "dynamic_value1";
var value2 = "dynamic_value2";
$('.dummyForm1').ajaxForm({
data: {
key1: value1,
key2: value2
}, //You were missing this comma.
complete: function (xhr) {
txt = xhr.responseText;
alert(txt);
}
});
})();
答案 1 :(得分:1)
给定解决方案的问题是ajaxform将在调用事件处理程序时填充变量。
var value1 = "dynamic_value1";
/*This will be sent*/
var value2 = "dynamic_value2";
(function () {
$('.dummyForm1').ajaxForm({
data: {
/*On load of event handler the values are set, they are not dynamic anymore*/
key1: value1,
key2: value2
},
complete: function (xhr) {
txt = xhr.responseText;
alert(txt);
}
});
})();
/*This will not be sent*/
value2 = "new value";
您可以使用函数返回全局变量的当前状态
var value1 = "dynamic_value1";
/*This will not be sent*/
var value2 = "dynamic_value2";
(function () {
$('.dummyForm1').ajaxForm({
data: {
/*On load of event handler the values are set, they are not dynamic anymore*/
key1: value1,
key2: function () {
/*this returns the current state of the global variable*/
return value2;
}
},
complete: function (xhr) {
txt = xhr.responseText;
alert(txt);
}
});
})();
/*This will be sent*/
value2 = "new value";