【问题标题】:How to pass mutiple values to ajax?如何将多个值传递给ajax?
【发布时间】:2019-08-25 22:39:57
【问题描述】:

error screenshot

当我单击按钮时,正在调用一个函数,它将返回一些值。我需要获取这些值并使用 Jquery 通过 AJAX 发送。

在点击按钮功能下方给出。在这个函数内部正在调用另一个函数(这里返回值我需要通过ajax传递)

问题是我无法在 ajax 中发送这些值。

谁能帮我做这件事?我不知道我在哪里做错了。

var dataSetsave = [];

   function saveschedule(startDate, endDate, periodInDays,cnt) {
          //dataSetsave = [];  
          var numWorkDays = 0;
          var currentDate = new Date(startDate);  

          while (numWorkDays < periodInDays && currentDate <= endDate) {
            currentDate = currentDate.addDays(1);
            // Skips friday
            if (currentDate.getDay() !== 5) {
              numWorkDays++;
            }
            if (numWorkDays == periodInDays) {
              numWorkDays = 0;
              cnt++;
              let date = dateToYMD(currentDate);
              let pos = holidays.indexOf(date);
              if (pos != -1) {
                //console.log("replace",date,"with",instead[pos])
                date = instead[pos];
              }  
              let treatment = pad(cnt) + nth(cnt) + (cnt == 1 ? " Basic" : " Control") + " Treatment"
              dataSetsave.push([treatment, date])
            }
          }
return dataSetsave;
        }

如何将 dataSetsave.push([treatment, date]) 传递给 ajax 并传递给控制器​​ php?

像这样保存到数据库中

Date
2019-01-01
2019-01-02
2019-01-03 so on.......

无论结果来自函数。多行我需要通过 AJAX。

完整代码(按钮点击)

$('#saveactivityarea').on('click', function(event) { //save new activity area       
    $('#newModalFormactivityarea').validate({
      rules: {
        act_contractbranch_name: {
          required: true
        }
      },
      messages: {
        act_contractbranch_name: {
          required: "Required"
        }

},

submitHandler: function(form) { 
    var act_contractbranch_name = $("#act_contractbranch_name").val();
var act_job_freq_contract = $("#act_job_freq_contract option:selected").val();
var act_city_activity = $("#act_city_activity option:selected").val();
var act_contractbranch_addr = $("#act_contractbranch_addr").val();
var act_contractbranch_contactname = $("#act_contractbranch_contactname").val();
var act_contractbranch_phone = $("#act_contractbranch_phone").val();
var act_contractbranch_emailid = $("#act_contractbranch_emailid").val();
var act_contractbranch_FAX = $("#act_contractbranch_FAX").val();
var fjd_date = $('#act_contractbranch_firstjobdt').val(); //24-06-2019
var act_contractbranch_firstjobdt = fjd_date.split("-").reverse().join("-");
var act_contractbranch_firstjd = new Date(fjd_date.split("-").reverse().join("-"));
var contractID = $('#contractID').val();
var confirstjobdt = $('.Contractend_firstjobdt').val();
var contractend_firstjobdt = new Date(confirstjobdt.split("-").reverse().join("-"));
var act_job_freq_daysbtw = $("#act_job_freq_contract option:selected").attr('data-freqdays');
var branch_pestorclean = $("#branch_pestorclean option:selected").val();
var branch_treatmenttype = $('#branch_treatmenttype').val();
var returnedValues = saveschedule(act_contractbranch_firstjd,contractend_firstjobdt,act_job_freq_daysbtw,0);



        var contractID = $('#contractID').val();
        $.ajax({
          type: "POST",
          url: 'activity_submitted',
          data: {
            getcontractbranch_name: act_contractbranch_name,
            getcontractbranch_freq: act_job_freq_contract,
            getbranch_city: act_city_activity,
            getcontractbranch_addr: act_contractbranch_addr,
            getcontractbranch_contactname: act_contractbranch_contactname,
            getcontractbranch_phone: act_contractbranch_phone,
            getcontractbranch_emailid: act_contractbranch_emailid,
            getcontractbranch_FAX: act_contractbranch_FAX,
            getcontractbranch_firstjobdt: act_contractbranch_firstjobdt,
            getpest_or_clean: branch_pestorclean,
            get_typeof_treatment: branch_treatmenttype,
            getdataSetsave: returnedValues,
            //getjob_schedule_frequency: job_schedule_frequency,
            getcontract_id: contractID

          }, 
          success: function(data) {
            //console.log(data);
            var obj = JSON.parse(data);

          } //end success
        });
      }
    });
  }); //save activity area

PHP模式函数

$data_jobschedule = array(
            'jobschedule_id' => $jobschedule_id,
            'Activity_area_id' => $Activity_area_id,
            'Contract_id' => $this->input->post('getcontract_id'),
            'job_freq_id' => $this->input->post('getcontractbranch_freq'),
            'job_schedule_dates' => $this->input->post('getschedule'),
            //'job_schedule_frequency' => $this->input->post('getjob_schedule_frequency'),
            'created_at' =>$created_Dt
        );

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    saveschedule 函数的末尾使用return

    return 语句结束函数执行并指定要返回的值给函数调用者。

    所以在函数的最后,简单的返回dataSetsave数组:

    return dataSetsave;
    

    那么...调用者是submitHandler。所以只需将saveschedule 的返回值分配给一个变量。喜欢:

    returnedValues = saveschedule(...);
    

    最后,在 Ajax data 对象中使用它:

    data: {
      schedule: returnedValues,
      getcontractbranch_name: act_contractbranch_name,
      ...
    

    【讨论】:

    • 我需要设置两个数组。在函数中它返回两个 dataSetsave.push([treatment, date])。 TREATMENT AND DATE..数据库表中有两列
    • 显示插入错误 INSERT INTO job_schedule (jobschedule_id, Activity_area_id, Contract_id, job_freq_id, job_schedule_dates, created_at) VALUES ('2119', '2118', '14', '1', Array, '2019- 08-26 06:20:52')
    • [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]列名“数组”无效。
    • job_schedule_dates 添加数组及其显示无效的列名数组
    • 我尝试在 ajax 之前使用 console.log(dataSetsave);这个结果我会更新代码上面的screenshort请检查它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多