不能获取$POST数据怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (196)

我从来没有碰到过现在这种情况。我正在网站的另一部分使用此设置。我无法弄清楚为什么我没有得到任何发布数据,我的会话变量永远不会更新。

这是html表单,动态创建一行复选框:

$html .= '<form id="status_form">';
    foreach ($leads as $key => $type) {
        $html .= '<input type="checkbox" name"' . $key . '" id="' . $key . '" class="box_status" value="1"';
        if (something = true) {
            $html .= ' checked="checked"';
        }
        $html .= ' />';
        $html .= '<label class="checkbox-inline" for"' . $key . '">' . $type . ' (' . @$count[$key] . ')</label>';
    }
    $html .= '</form>';

    echo $html;

每次选中复选框时,javascript都会提交表单以主要更新会话变量,然后重新加载页面:

function update_report() {
            var form_data = $("#status_form").serialize();
            $.ajax({
                type: 'POST',
                url: 'scripts/test.php',
                data: form_data,
                success: function() {
                    window.location.reload(true);
                }
            });
        }

        $('.box_status').change(function(){
            update_report();
        });

这是test.php文件:

session_start();

if (isset ($_POST)) {

  $_SESSION['crm']['reports']['index'] = array();

    foreach ($_POST as $k => $v) {
        $_SESSION['crm']['reports']['index'][] = $k;
    }

    $_SESSION['post'] = $_POST;

    echo true;
}
提问于
用户回答回答于

你的字符串连接中有错误:

$html .= '<input type="checkbox" name"' . $key . '" id="' . $key . '" class="box_status" value="1"';

name"'应该是name="',你忘了等号。jQuery serialize只接受带有名称的输入标签。

你的解决方案

$html .= '<input type="checkbox" name="' . $key . '" id="' . $key . '" class="box_status" value="1"';

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动