2012-07-10 67 views
1

我想将变量的值传递给ajaxForm数据。将值传递给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']; 

================== ==== COMPLETE脚本

<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> 

form-php.php

<? 
    echo "Key1 value:". $_POST['key1']; 
?> 
+0

所以,你只是想InitCase键值名的当前状态? – Chandu 2012-07-10 17:10:12

+0

我需要在AjaxForm调用期间在JSON中传递的变量值? – Shiv 2012-07-10 17:52:26

+0

你现在的代码应该可以正常工作。你面临的问题是什么? – Chandu 2012-07-10 17:54:13

回答

5

您在data属性后缺少一个逗号。

试试这个:

(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); 
     } 
    }); 
})(); 
+0

非常感谢!添加缺少的逗号可以修复该问题 – Shiv 2012-07-10 18:14:34

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";