当我提交ajax时,我需要将三个数据参数发布到process.conversation.php
:method
,s_state
和c_id
。在这两个输入值中找到s_state
和c_id
。两个变量都已正确设置。我使用alert(s_state)
和alert(c_id)
,它们都符合我的预期。
除了我的c_id
没有发布之外,一切都很好。如果我更改,在ajax c_id: '1'
中,1
将按照我的预期发布;但是,当我使用分配给1
的变量c_id时,它不会被发布(或者至少没有发布我被警告的值......我不确定是哪个。)我这样做,但是,在所有情况下都获得成功{。}}。
注意:toggleClass
与我期望的完全一样,s_state
也是如此。如果method
,则会使用该变量发布。所以,我不知道为什么s_state = '1'
不起作用。
欢迎任何和所有想法。
可能出了什么问题?
的jQuery / AJAX:
c_id
和一些html:
$(".__conversation_s").click(function() {
var $thisS = $(this);
var s_state = $thisS.find("input[name='s_state']").val();
var c_id = $thisS.find("input[name='c_id']").val();
jQuery.ajax({
type: 'POST',
url: "./process.conversation.php",
data: {
method: 'star_toggle',
s_state: 's_state',
c_id: 'c_id'
},
cache: True,
success: function() {
$thisS.toggleClass("__starred");
}
});
});
答案 0 :(得分:3)
数据对象中的语法不正确。您在变量名称周围有引号,这意味着它们不是变量,而是包含与变量名称相同的字母的字符串。
data: {
method: 'star_toggle',
s_state: 's_state',
c_id: 'c_id' /* will send the string with letters `c` and `_` and `id` to server*/
}
从变量中删除引号:
data: {
method: 'star_toggle',
s_state: s_state,
c_id: c_id
}