使用AJAX发送两个变量(我有一个工作但需要两个)

时间:2015-05-29 08:30:25

标签: php jquery mysql ajax

我使用以下代码发送到添加到mysql数据库的php脚本。 PHP代码工作正常并设置为接收两个变量,但我不确定如何更改ajax代码以传递2个(或更多)变量而不是1到PHP脚本。 我已经命名了传递给'taskA'的变量,并想要添加'taskB'

function add_task() {
    $('.add-new-task').submit(function(){
    var new_taskA = $('.add-new-task select[name=new-taskA]').val();

    if(new_taskA != ''){
    $.post('add-task.php', { taskA: new_taskA }, function( data ) {
    $('.add-new-taskA select[name=new-taskA]').val('');

    $(data).appendTo('.task-list ul').hide().fadeIn();

                delete_task();
            });
    }
    return false;

    });
}

function delete_task() {
    $('.delete-button').click(function(){
    var current_element = $(this);
    var id = $(this).attr('id');

    $.post('delete-task.php', { task_id: id }, function() {
    current_element.parent().fadeOut("fast", function() { $(this).remove(); });
    });
    });
}

非常感谢提前

3 个答案:

答案 0 :(得分:0)

您可以通过,符号来传递多个值    {taskA:new_taskA,taskB:new_taskB}

答案 1 :(得分:0)

{ taskA : new_taskA }是一个变量(一个对象)。但是一个对象可以有很多键/值对:{ taskA: new_taskA , taskB : new_taskB}仍然是一个对象,但包含更多内容。您可以通过这种方式传递尽可能多的数据:字符串,数字,对象等等。

服务器端,使用以下方式获取此数据:

$taskA = $_POST['taskA'];
$taskB = $_POST['taskB'];

甚至是将所有POST变量转换为PHP变量的通用循环:

foreach ($_POST as $var => $value)  $$var = $value;

这会自动将$taskA$taskB$taskWhatever变量设置为相应的值。但要注意安全,不要忘记对内容进行消毒。

答案 2 :(得分:0)

怎么样:

$.post('add-task.php', { taskA: new_taskA, taskB: new_taskB }, function(...

只需添加','变量之间。 可以从jQuery API页面的底部找到: http://api.jquery.com/jquery.ajax/

即:

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
})