Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JSON将Javascript数组传递给PHP_Php_Javascript_Json - Fatal编程技术网

使用JSON将Javascript数组传递给PHP

使用JSON将Javascript数组传递给PHP,php,javascript,json,Php,Javascript,Json,我的HTML上有2个选项,选项通过我的数据库加载,用户可以在框之间切换选项,如下所示: <select id="column1" multiple size="10" name="FromLB" style="width:150px"> <?php foreach ($result->result() as $row) { ?> <option value="<?php echo $row->id ?>">

我的HTML上有2个选项,选项通过我的数据库加载,用户可以在框之间切换选项,如下所示:

<select id="column1" multiple size="10" name="FromLB" style="width:150px">
        <?php foreach ($result->result() as $row) { ?>
        <option value="<?php echo $row->id ?>"><?php echo $row->title ?></option>
        <?php } ?>
</select>

在这一行

JSON = JSON.stringify(column1);
您可以重新定义本机JSON对象。请为变量使用另一个名称,这样就可以了

至于提交两个数组,只需使用一个封装对象:

data2send = JSON.stringify( { 'column1': column1, 'column2': column2 } );
除了使用递增索引将数据插入数组之外,只需使用本机方法。

在这一行中

JSON = JSON.stringify(column1);
您可以重新定义本机JSON对象。请为变量使用另一个名称,这样就可以了

至于提交两个数组,只需使用一个封装对象:

data2send = JSON.stringify( { 'column1': column1, 'column2': column2 } );

除了使用递增索引将数据插入数组之外,只需使用本机方法。

这里发生了一些奇怪的行为,很可能是由于
JSON
变量正在覆盖浏览器的本机
JSON
对象(或者在旧浏览器中由
json.js
提供)

实际上,您可以将一个对象直接传递给
$.ajax
,因此以下操作将起作用:

$.ajax({
    url: '<?php echo base_url() . 'js_tests/update_news'; ?>',
    type: 'POST',
    data: column1,
    success: function(){
        alert("Success!")
    }
});

这里发生了一些奇怪的行为,很可能是由于
JSON
变量正在覆盖浏览器的本机
JSON
对象(或旧浏览器中由
JSON.js
提供的对象)造成的

实际上,您可以将一个对象直接传递给
$.ajax
,因此以下操作将起作用:

$.ajax({
    url: '<?php echo base_url() . 'js_tests/update_news'; ?>',
    type: 'POST',
    data: column1,
    success: function(){
        alert("Success!")
    }
});

让jQuery完成繁重的工作:

function sort_cols(){
    var col1 = [], col2 = [];

    $("#column1 option").each(function() {
        col1.push($(this).val());
    });

    $("#column2 option").each(function() {
        col2.push($(this).val());
    });  

    $.ajax({
        url: '<?php echo base_url() . 'js_tests/update_news'; ?>',
        type: 'POST',
        contentType: "application/json",
        data: JSON.stringify({
            column1: col1,
            column2: col2
        }),
        success: function(){
            alert("Success!")
        }
    });
}
函数排序\u cols(){
var col1=[],col2=[];
$(“#column1选项”)。每个(函数(){
col1.push($(this.val());
});
$(“#column2选项”)。每个(函数(){
col2.push($(this.val());
});  
$.ajax({
url:“”,
键入:“POST”,
contentType:“应用程序/json”,
数据:JSON.stringify({
专栏1:col1,
专栏2:col2
}),
成功:函数(){
警报(“成功!”)
}
});
}

让jQuery做繁重的工作:

function sort_cols(){
    var col1 = [], col2 = [];

    $("#column1 option").each(function() {
        col1.push($(this).val());
    });

    $("#column2 option").each(function() {
        col2.push($(this).val());
    });  

    $.ajax({
        url: '<?php echo base_url() . 'js_tests/update_news'; ?>',
        type: 'POST',
        contentType: "application/json",
        data: JSON.stringify({
            column1: col1,
            column2: col2
        }),
        success: function(){
            alert("Success!")
        }
    });
}
函数排序\u cols(){
var col1=[],col2=[];
$(“#column1选项”)。每个(函数(){
col1.push($(this.val());
});
$(“#column2选项”)。每个(函数(){
col2.push($(this.val());
});  
$.ajax({
url:“”,
键入:“POST”,
contentType:“应用程序/json”,
数据:JSON.stringify({
专栏1:col1,
专栏2:col2
}),
成功:函数(){
警报(“成功!”)
}
});
}

您调用函数的次数是多少?当然,如果覆盖
JSON
,您将无法再次
字符串化
。只需调用本地变量“myData”,例如。Q:您是偶然使用jQuery的吗?是的,sRequest,正在调用jQuery。您调用函数的次数是多少?当然,如果您覆盖
JSON
,您将无法再次
字符串化
。只需调用您的本地变量“myData”,例如。Q:您是偶然使用jQuery的吗?是的,sRequest,正在调用jQuery。这听起来很优雅,您知道为什么它会返回一个未捕获的语法错误吗?错误:意外的标记u?-编辑:无需担心!很可能是复制/粘贴错误?我使用您的代码的重写版本进行了编辑,并做了一些其他改进(数组文字而不是
new array()
,和
push()
而不是手动增加变量来创建
columnN
数组),所以复制/粘贴这个,你应该不会有任何问题:)编辑:刚刚看到你的“nevermind”编辑,但改进仍然有效!这是因为我还在调用json.js(愚蠢的我).感谢您提供的优雅解决方案…我越来越意识到jQuery太好了,不可能是真的!这听起来非常优雅,你知道为什么它会返回一个未捕获的Syntaxer吗?错误:意外的标记u?-编辑:无需担心!很可能是复制/粘贴错误?我使用您的代码的重写版本进行了编辑,并做了一些其他改进(数组文字而不是
new array()
,和
push()
而不是手动增加变量来创建
columnN
数组),所以复制/粘贴这个,你应该不会有任何问题:)编辑:刚刚看到你的“nevermind”编辑,但改进仍然有效!这是因为我还在调用json.js(愚蠢的我).感谢您提供的优雅解决方案…我越来越意识到jQuery太好了,不可能是真的!