jquery:如何将数组附加到表单请求并将其发送到 Jquery 中的 php

发布于 2024-09-29 04:04:16 字数 1110 浏览 4 评论 0原文

var subtbl = $(this).attr('data-counter');
                 var stunbr = $(this).attr('data-stunbr');
                var m = 0;
                var checkedlines = new Array();
            $.each($("#sub-table"+subtbl+"  "+"input:checked"),function (m){            
            var chk_value = $("#chk_"+stunbr+"_"+m).attr('value');
                var txt_value = $("#txt_"+stunbr+"_"+m).attr('value');
              //alert("Txt value --->"+ txt_value +" Chk Value --->"+ chk_value);           
            checkedlines[m] = { STUNBR: stunbr, SNO: chk_value, NAME: txt_value }; 
                m++;          
        });

如何附加“checkedlines”以在 jquery 中形成请求并将其发送到 php 。我的意思是我们需要使用 $.ajax 你可以在附加“checkedlines[]”中显示吗 我们可以用 Jquery 中可用的任何方法生成这个数组 n Json 来生成 JSON 如果它是一个普通数组,我如何在 php 中使用它。再薄一点 我如何迭代外部的“checkedlines[]”数组 不使用“var r=0”变量的每个循环

    var r=0;
    $.each(checkedlines,function(r){
        alert("ASNURNNBR==>"+checkedlines[r]['STUNBR']+"SEQNO==>"+checkedlines[r]['SNO']+"RCVDATY==>"+checkedlines[r]['NAME']);
        r++;
    });
var subtbl = $(this).attr('data-counter');
                 var stunbr = $(this).attr('data-stunbr');
                var m = 0;
                var checkedlines = new Array();
            $.each($("#sub-table"+subtbl+"  "+"input:checked"),function (m){            
            var chk_value = $("#chk_"+stunbr+"_"+m).attr('value');
                var txt_value = $("#txt_"+stunbr+"_"+m).attr('value');
              //alert("Txt value --->"+ txt_value +" Chk Value --->"+ chk_value);           
            checkedlines[m] = { STUNBR: stunbr, SNO: chk_value, NAME: txt_value }; 
                m++;          
        });

How do iattach the "checkedlines" to form request in jquery and send it to php .I mean do we need to use $.ajax can you show in attaching "checkedlines[]"
Can we produce this array n Json any method available in Jquery to produce JSON
How can i consume that in php if it is a plain array .One more thin How do i Iterate through the "checkedlines[]" array outside
of the each loop without using the "var r=0 " variable

    var r=0;
    $.each(checkedlines,function(r){
        alert("ASNURNNBR==>"+checkedlines[r]['STUNBR']+"SEQNO==>"+checkedlines[r]['SNO']+"RCVDATY==>"+checkedlines[r]['NAME']);
        r++;
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难忘№最初的完美 2024-10-06 04:04:17

一种选择是将对象序列化为 JSON 字符串,并将结果写入用户可以提交的表单内的隐藏字段中。

<form>

 ...

<input id="json_array" type="hidden" name="json_array" />

 ...

</form>


<script type="text/javascript">

function stringify(obj) {
    var t = typeof (obj);
    if (t != "object" || obj === null) {
        // simple data type
        if (t == "string") obj = '"'+obj+'"';
        return String(obj);
    }
    else {
        // recurse array or object
        var n, v, json = [], arr = (obj && obj.constructor == Array);
        for (n in obj) {
            v = obj[n]; t = typeof(v);
            if (t == "string") v = '"'+v+'"';
            else if (t == "object" && v !== null) v = stringify(v);
            json.push((arr ? "" : '"' + n + '":') + String(v));
        }
        return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
    }
};

var checkedLines = {};

//
// Your code populating the checkLines object goes here
//

var jsonResult = stringify(checkedlines);

$('#json_array').val(jsonResult);

</script>

stringify() 函数取自 JSON.org 库。

如果您不想使用表单,那么是的,$.ajax();是一个要走的路。只需将 jsonResult 添加到具有相关变量名称的 data 属性即可:

$.ajax({
  method: "POST",
  url: 'http://example.com',
  data: "json_array=" + jsonResult,
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});

One option would be to serialize the object into a JSON string and write the result into a hidden field inside of a form the user can submit.

<form>

 ...

<input id="json_array" type="hidden" name="json_array" />

 ...

</form>


<script type="text/javascript">

function stringify(obj) {
    var t = typeof (obj);
    if (t != "object" || obj === null) {
        // simple data type
        if (t == "string") obj = '"'+obj+'"';
        return String(obj);
    }
    else {
        // recurse array or object
        var n, v, json = [], arr = (obj && obj.constructor == Array);
        for (n in obj) {
            v = obj[n]; t = typeof(v);
            if (t == "string") v = '"'+v+'"';
            else if (t == "object" && v !== null) v = stringify(v);
            json.push((arr ? "" : '"' + n + '":') + String(v));
        }
        return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
    }
};

var checkedLines = {};

//
// Your code populating the checkLines object goes here
//

var jsonResult = stringify(checkedlines);

$('#json_array').val(jsonResult);

</script>

The stringify() function is taken from the JSON.org library.

If you don't want to use a form then yes, $.ajax(); is a way to go. Simply add jsonResult to the data property with a relevant variable name:

$.ajax({
  method: "POST",
  url: 'http://example.com',
  data: "json_array=" + jsonResult,
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});
巴黎夜雨 2024-10-06 04:04:17

好的,这就是你可以做的。
我创建了一个示例来向您展示它是如何工作的。
它实际上不是使用serializeArray,而是使用JSON对象:

/////
如果使用 IE6,您必须将以下 js 文件包含到 html 文档的标头中: https:// github.com/douglascrockford/JSON-js
/////

// JavaScript
$(文档).ready(函数() {
var 名称 = ["约翰", "迈克", "乔"];
var 位置 = ["flash", "php", "javascript"];

var arr = new Array();
for (var i = 0; i < positions.length; i++){
    arr.push({"firstname": names[i], "position": positions[i] });
};

var json = JSON.stringify(arr);

$.ajax({
  url: "data.php",
  method:"GET",
  data: "json="+json,
   success: function(data){alert("data: "+data);},
  dataType: "text"
});

});

// 数据.PHP
$decoded = json_decode($_GET['json']);
echo $decoded[0]->firstname;

有效!

ok so here is what you can do.
I created an example to show you how it works.
It is actualy not using the serializeArray, but the JSON object:

/////
if using IE6, you will have to include the following js file into the header of your html document : https://github.com/douglascrockford/JSON-js
/////

// JAVASCRIPT
$(document).ready(function() {
var names = ["John", "Mike", "Joe"];
var positions = ["flash", "php", "javascript"];

var arr = new Array();
for (var i = 0; i < positions.length; i++){
    arr.push({"firstname": names[i], "position": positions[i] });
};

var json = JSON.stringify(arr);

$.ajax({
  url: "data.php",
  method:"GET",
  data: "json="+json,
   success: function(data){alert("data: "+data);},
  dataType: "text"
});

});

// DATA.PHP
$decoded = json_decode($_GET['json']);
echo $decoded[0]->firstname;

that works!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文