在jQuery中传递数组后请求不起作用

时间:2019-04-30 08:03:35

标签: javascript php jquery post

im试图在jquery .post中传递javascript数组,但页面上未显示。我究竟做错了什么?我看到我的数组已填充,但数据未显示在页面文章中。控制台日志显示p元素,我也不知道为什么这样做。

jquery代码:

 $("#submitboeking").click(function(event) {

        event.preventDefault();


        //Cursisten
        var voornamen = [];
        var achternamen = [];
        var geslachten = [];
        var geboortedata = [];

        $("[id^='txtCursistVoornaam']").each(function() {
            voornamen.push($(this).val());
        });
        $("[id^='txtCursistAchternaam']").each(function() {
            achternamen.push($(this).val());
        });
        $("[id^='radCursistGeslacht']:checked").each(function() {
            geslachten.push($(this).val());
        });
        $("[id^='txtCursistGeboortedatum']").each(function() {
            geboortedata.push($(this).val());
        });

        // console.log(voornamen);
        // console.log(achternamen);
        // console.log(geslachten);
        // console.log(geboortedata);

        $.post('/wp-content/themes/tweb/processboeking.php',
         {


            voornamen: voornamen,
            geslachten: geslachten,
            voornamen: voornamen,
            achternamen: achternamen,
            geboortedata: geboortedata,
            })
            .done(function(data)
             {
                console.log(data)
                $('#overzichtboeking').html(data);

            }).fail(function(data) {
                alert(response.responseText);
            });

        var li_count = $('.nav-tabs li').length;
        var current_active = $('.nav-tabs li.active').index();
        if (current_active < li_count) {
            $('.nav-tabs li.active').next('li').find('a').attr('data-toggle', 'tab').tab('show');
            var txt = $(".oplselect option:selected").text();
            var val = $(".oplselect option:selected").val();
            $('.showoplnaam').html('Uw selectie: ' + txt);
        }

    });

console.log数据:

Array
(
    [voornamen] => Array
        (
            [0] => G.F.
        )

    [geslachten] => Array
        (
            [0] => Dhr.
        )

    [achternamen] => Array
        (
            [0] => martens
        )

    [geboortedata] => Array
        (
            [0] => 25-10-1993
        )

)
<p id="overzichtboeking"></p>  

processboeking.php

<?php
include '/home/vhosts/tweb.nl/httpdocs/wp-content/themes/tweb/db/dbcon.php';

print_r($_POST);

?>
<p id="overzichtboeking"></p>  

1 个答案:

答案 0 :(得分:0)

获取完整的表单数据作为数组并json对其进行字符串化。

var formData = JSON.stringify($("#myForm").serializeArray());

稍后可以在ajax中使用它。或者,如果您不使用ajax;将其放在隐藏的文本区域中并传递到服务器。如果此数据通过常规格式数据作为json字符串传递,则必须使用json_decode对其进行解码。然后,您将获得数组中的所有数据。

$.ajax({
  type: "POST",
  url: "serverUrl",
  data: formData,
  success: function(){},
  dataType: "json",
  contentType : "application/json"
});

摘自此stackoverflow帖子:How to send a JSON object using html form data

要使用服务器端的JSON输入,请看一下这篇文章,以将其转换回PHP数组:https://www.dyn-web.com/tutorials/php-js/json/decode.php