0

当我提交ajax时,我需要将三个数据参数发布到process.conversation.phpmethod、、s_statec_ids_statec_id在这两个输入值中找到。两个变量都被正确设置。我使用alert(s_state)and alert(c_id),它们都符合我的预期。

一切都很好,除了我c_id没有发布。如果我在 ajax 中更改,c_id: '1'将按1我的预期发布;但是,当我使用分配给的变量 c_id 时1,它不会被发布(或者至少不会以我收到警报的值发布......我不确定是哪个。)但是,我确实获得了成功toggleClass在所有情况下。

注意:s_state完全按照我的预期工作,就像method. 如果s_state = '1',它将与该变量一起发布。所以,我不知道为什么c_id不工作。

任何和所有的想法都是完全欢迎的。
可能出了什么问题?

jQuery/ajax:

$(".__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");
   }
});
});

和一些html:

<div class='__conversation_s'>
    <input type='hidden' name='s_state' value="<?php echo $s_important; ?>">
    <input type='hidden' name='c_id' value="<?php echo $c_id; ?>">
</div>
4

1 回答 1

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 
   }
于 2013-01-27T00:09:43.073 回答