Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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
Javascript 如何通过ajax调用获取值返回?_Javascript_Php - Fatal编程技术网

Javascript 如何通过ajax调用获取值返回?

Javascript 如何通过ajax调用获取值返回?,javascript,php,Javascript,Php,我想从数据中绘制google图表(ajax调用) 这是返回值的ajax.php文件 function interncompany(){ global $DB; //query by experience total post $sql = 'SELECT lc.id, count(ljj.job_id) as count, lc.companyname FROM {local_jobs_job} ljj INNER JOIN {local_companydetail} lc ON ljj.j

我想从数据中绘制google图表(ajax调用)

这是返回值的ajax.php文件

function interncompany(){

global $DB;

//query by experience total post
$sql = 'SELECT lc.id, count(ljj.job_id) as count, lc.companyname FROM {local_jobs_job} ljj INNER JOIN {local_companydetail} lc ON ljj.job_company_userid = lc.userid  where ljj.job_type = 1 group by lc.companyname';


//get the query into record
$data = $DB->get_records_sql($sql);

//put the query into array
$rows = array();

$rows = array_map(function($item) {
return (object) ['c' => [
    (object) ['v' => $item->companyname, 'f' => null],
    (object) ['v' => intval($item->count), 'f' => null]
]];
}, array_values($data));


$cols = [
(object) ['id' => '', 'label' => 'LABEL', 'pattern' => '', 'type' => 'string'],
(object) ['id' => '', 'label' => 'TOTAL', 'pattern' => '', 'type' => 'number'],
];

$returndata = new stdClass;
$returndata->cols = $cols;
$returndata->rows = $rows;

echo json_encode($returndata);

}
使用选择框动态选择数据

if ($select1 == '1') {
    
     if ($select2 == '1') {

               jobcompany();

                }
     
     if ($select2 == '2') {
                
                joblocation();
                }
 
      if ($select2 == '3') {
                jobcategory();
        }

      
      if ($select2 == '4') {
                jobsalary();
        }

      if ($select2 == '5') {
                jobexperience();
        }


        if ($select2 == '6') {
                joblevel();
        }

 }

 elseif ($select1 == '2') {

    if ($select2 == '1') {

                interncompany();

                }
     
     if ($select2 == '2') {
                internlocation();
                }
 
      if ($select2 == '3') {
                interncategory();
        }

      
      if ($select2 == '4') {
                internsalary();
        }

      if ($select2 == '5') {
                internexperience();
        }


        if ($select2 == '6') {
                internlevel();
        }
  }

      
我的问题是:我想如何创建一个函数来动态获取数据并将结果插入数据:{},以便数据返回到php文件,以便可以通过ajax调用读取以绘制图表

现在它什么也不返回。我需要在ajax中硬编码内部数据:{}以绘制图表

通过以下方式动态选择数据:

  // get the select value
            $(document).ready(function() {
            // for post-filter
                $('#post-filter').on('change',function(){
                var select1 = $(this).val();  // Post filter value
                var select2 = $("#field-filter").val(); // Field Filter value
                $.ajax({
                        type: 'POST',
                        url: 'ajax.php',
                        data: {selValue1 : select1,selValue2 :select2 },
                        success: function(result){
                           console.log(result); 
                        }
                    });
            });



             //  field filter value.
                 $('#field-filter').on('change',function(){
                    
                    var select2 = $(this).val();  // Field filter value
                    var select1 = $("#post-filter").val(); // post Filter value
                    $.ajax({
                            type: 'POST',
                            url: 'ajax.php',
                            data: {selValue1 : select1,selValue2 :select2 },
                            success: function(result){
                               console.log(result);  
                            }
                        });
                     });        
            });

    
这是单击选择框时的结果…只有结果不会返回到ajax。如何填充内部数据:{}将结果放入drawitem函数ajax调用

插入标头时出错


结果数据出现,但出现错误,图表不存在。

您可以尝试以下方法吗?我已经展示了FieldFilter的示例,如果它有效,您可以为PostFilter复制它

var dataVars = {};
dataVars['selValue1'] = $("#post-filter").val();  // Post filter value
dataVars['selValue2'] = $("#field-filter").val(); // Field Filter value


var jsonPieChartData = $.ajax({
                url: "ajax.php",
                data: JSON.stringify(dataVars) ,
                dataType: "json",
                async: false
                }).responseText;
}
还要确保在php中将内容类型头设置为JSON

header('Content-Type: application/json');

你可以试试下面的方法吗?我已经展示了FieldFilter的示例,如果它有效,您可以为PostFilter复制它

var dataVars = {};
dataVars['selValue1'] = $("#post-filter").val();  // Post filter value
dataVars['selValue2'] = $("#field-filter").val(); // Field Filter value


var jsonPieChartData = $.ajax({
                url: "ajax.php",
                data: JSON.stringify(dataVars) ,
                dataType: "json",
                async: false
                }).responseText;
}
还要确保在php中将内容类型头设置为JSON

header('Content-Type: application/json');

使用选择框动态选择数据
-此代码是什么?相对于代码的其余部分,它位于何处?
console.log(jsonPieChartData)此操作的输出是什么?另外,
async:false
-主线程上的同步XMLHttpRequest被弃用-这可能最终会失败,您需要学习如何异步执行操作如果我不设置数据,控制台日志输出为null:{}内部硬代码。我可以用这种方式获取数据:function datareturn(){$.get(“ajax.php”,function(data){$(“body”).append(data.cols).append(data.rows);},“json”);}var jsonPieChartData=$.ajax({url:“ajax.php”,数据:{datareturn},数据类型:“json”,异步:false}).responseText;
使用选择框动态选择数据
-此代码是什么?它相对于代码的其余部分位于何处?
console.log(jsonPieChartData)
这是什么输出?另外,
async:false
-主线程上的同步XMLHttpRequest被弃用-这可能最终会失败,您需要学习如何异步执行操作如果我不在内部设置数据:{}硬代码,控制台日志输出为空。我可以使用这种方法获取数据:函数datareturn(){$。get(“ajax.php”,函数(数据){$(“body”).append(data.cols).append(data.rows);},“json”);}var jsonPieChartData=$.ajax({url:“ajax.php”,数据:{datareturn},数据类型:“json”,异步:false}).responseText;我应该在哪里插入头?当我将其放入get error时,您应该在PHP文件中添加header函数。您是否仅在添加头时才会收到错误?您是否可以在Plunkers上发布一个工作示例当我更改数据时会出现错误:{}值。如果我是否放入标题,它仍然会出现。我已更新我的答案。..var select1=$(this).val();..$(this)指的是DOM窗口,而不是您的元素。您需要引用该元素并获得类似以下$(“#post filter”).val()的值…字段过滤器也是如此…你能检查一下这是否纠正了错误吗?我应该在哪里插入标题?当我将它放入get error时,你应该在PHP文件中添加header函数吗?你是否只在添加标题时才得到错误?你能发布一个关于Plunkers的工作示例吗?当我更改数据时,会出现错误:{}值。如果我是否放入标题,它仍然会出现。我已更新我的答案。..var select1=$(this).val();..$(this)指的是DOM窗口,而不是您的元素。您需要引用该元素并获得类似以下$(“#post filter”).val()的值…字段筛选器也是如此…请检查这是否更正了错误?