Py学习  »  Jquery

使用jQuery在数据库上保存变量和表单输入。post()

Josep • 3 年前 • 1710 次点击  

有没有可能发送 类型 元素(用 .serialize() 方法)和其他参数?

例子:

$.ajax({
    type : 'POST',
    url : 'url',
    data : {
        $('#form').serialize(),
        par1 : 1,
        par2 : '2',
        par3: 232
    }
}

如果没有,提交表格和其他参数的最佳方式是什么?

谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129569
 
1710 次点击  
文章 [ 11 ]  |  最新文章 3 年前
Hassaan Aziz Fazli
Reply   •   1 楼
Hassaan Aziz Fazli    6 年前

我用Understatement解决了这个问题; 使用相同的获取方法发送url数据

$.ajax({
    url: 'includes/get_ajax_function.php?value=jack&id='+id,
    type: 'post',
    data: $('#b-info1').serializeArray(),

并从中获得价值 $_REQUEST['value'] $_GET['id']

Felixuko
Reply   •   2 楼
Felixuko    8 年前

您可以使用jQuery和另一个表单的内容创建一个辅助表单,然后将该表单添加到其他参数中,这样您只需在ajax调用中序列化它。

function createInput(name,value){
    return $('<input>').attr({
        name: name,
        value: value
    });
}
$form = $("<form></form>");
$form.append($("#your_form input").clone());
$form.append(createInput('input_name', 'input_value'));
$form.append(createInput('input_name_2', 'input_value_2'));
....

$.ajax({
    type : 'POST',
    url : 'url',
    data : $form.serialize()
}
Suresh Prajapat
Reply   •   3 楼
Suresh Prajapat    6 年前

您也可以使用serializeArray函数来执行同样的操作。

Tyler2P sh shojol
Reply   •   4 楼
Tyler2P sh shojol    3 年前
$("#add_form").submit(function(e) {
    e.preventDefault();
    var total_qty = $('#total_qty').text();
    var total_amt = $('#total_amt').text();
       
    $("#add_btn").val('adding....');
    $.ajax({
        url: 'action.php',
        method: 'post',
        data: $(this).serialize() + "&total_qty="+total_qty + "&total_amt="+total_amt,
        success: function(data){
            console.log(data);
        }   
    });
});
Salim Mansoori
Reply   •   5 楼
Salim Mansoori    3 年前

用js编码:

  var temp =    $("#pay_property_amount").serialize();
            temp = btoa(temp);

把ajex递过来

 data: { temp_data : temp },

用php解码

    $temp_data = base64_decode($this->input->post('temp_data'));

 if($temp_data){
$temp_data = $this->unserializeForm($temp_data);
 }


function unserializeForm($str) {
$returndata = array();
$strArray = explode("&", $str);
$i = 0;
foreach ($strArray as $item) {
    $array = explode("=", $item);
    
    if (preg_match('/(%5B%5D)/', $array[0])) {
          $array[0] = str_replace('%5B%5D','',$array[0]);
          if(array_key_exists($array[0],$returndata)){
                  $returndata[$array[0]][]=$array[1];
          }else{
              $returndata[$array[0]] =array();
              $returndata[$array[0]][]=$array[1];
          }
    }else
    {
        $returndata[$array[0]] = $array[1];
    }
    
    
}

return $returndata;
}
Dani
Reply   •   6 楼
Dani    5 年前

下列的 罗里·麦克罗森 回答,如果你想发送 大堆 对于integer(几乎适用于.NET),代码如下:

// ...

url: "MyUrl",       //  For example --> @Url.Action("Method", "Controller")
method: "post",
traditional: true,  
data: 
    $('#myForm').serialize() +
    "&param1="xxx" +
    "&param2="33" +
    "&" + $.param({ paramArray: ["1","2","3"]}, true)
,             

// ...
showdev Sanjay
Reply   •   7 楼
showdev Sanjay    5 年前

像这样传递参数的值

data : $('#form_id').serialize() + "&parameter1=value1&parameter2=value2"

等等

4302836
Reply   •   8 楼
4302836    6 年前

如果你想用表单序列化发送数据,你可以试试这个

var form= $("#formId");
$.ajax({
    type: form.attr('method'),
    url: form.attr('action'),
    data: form.serialize()+"&variable="+otherData,
    success: function (data) {
    var result=data;
    $('#result').attr("value",result);

    }
});
Rohit Arora
Reply   •   9 楼
Rohit Arora    10 年前

我不知道,但上面这些都对我不起作用,然后我用了这个,它起了作用:

在表单的序列化数组中,它存储为键值对

我们在表单变量中推送一个或多个新值,然后我们可以直接传递这个变量。

var form = $('form.sigPad').serializeArray();
var uniquekey = {
      name: "uniquekey",
      value: $('#UniqueKey').val()
};
form.push(uniquekey);
Hassaan Aziz Fazli
Reply   •   10 楼
Hassaan Aziz Fazli    6 年前

或者你可以使用 form.serialize() 具有 $.param(object) 如果将参数存储在某个对象变量中。用法如下:

var data = form.serialize() + '&' + $.param(object)

看见 http://api.jquery.com/jQuery.param 以供进一步参考。

Rory McCrossan
Reply   •   11 楼
Rory McCrossan    13 年前

serialize() 有效地将表单值转换为有效的查询字符串,因此您只需将以下内容附加到字符串:

$.ajax({
    type : 'POST',
    url : 'url',
    data : $('#form').serialize() + "&par1=1&par2=2&par3=232"
}