在选择选项中使用JSON数组

Using JSON Arrays in Select Options

本文关键字:JSON 数组 选择 选项      更新时间:2023-09-26

我有一个选择框,其中的选项遵循以下格式:

 <select id="acctg_dept" name="acctg_dept">
    <option value="{'acctg_dept_nbr':'2','acctg_dept_desc':'ELECTRONICS'}">02 - ELECTRONICS</option>
   ...
</select>

我试图通过ajax传递两个值,像这样。我已经尝试过和没有将acctg_dept声明为数组。

var acctg_dept = [];
  acctg_dept = $('#acctg_dept').val();
  $.ajax({
    type : 'post',        
    url : url,
    data : {acctg_dept: JSON.stringify(acctg_dept)},        
    dataType : "data",
  ...

现在我在那里有stringify,但没有尝试过,仍然有问题…

ajax调用PHP页面完成以下操作:

$acctg_dept = $_REQUEST['acctg_dept']; $acctg_dept = json_decode("$acctg_dept",true);

再次,我已经尝试了几种不同的方式,仍然没有得到我正在寻找的结果,这是能够在相同的PHP脚本中执行以下操作。

$acctg_dept_nbr = $acctg_dept['acctg_dept_nbr'];

使用这里概述的方法,我得到非法字符串偏移量。我已经尝试了每一个和$acctg_dept[0]['acctg_dept_nbr'];,但没有任何进展。我认为PHP不认为它是一个数组,但我不确定为什么不。

您可以尝试但不测试…

html代码

<select id="acctg_dept" name="acctg_dept">
 <option  value='{"acctg_dept_nbr":"2","acctg_dept_desc":"ELECTRONICS"}'>ELC</option>  
</select>

ajax调用到您的服务器PHP文件

var acctg_dept = [];
acctg_dept = $('#acctg_dept').val();
$.ajax({
 type : 'post',        
 url : url,
 data : {acctg_dept: acctg_dept},     //don't stringify it   
  success:function(data){
  console.log(data);
 }
});

在服务器端尝试捕获post数据

print "<pre>";
print_r($_POST);
die;