社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

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

Josep • 3 年前 • 1555 次点击  

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

例子:

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

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

谢谢

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

我用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    5 年前

您也可以使用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    9 年前

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

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

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

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

或者你可以使用 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"
}