为了账号安全,请及时绑定邮箱和手机立即绑定

通过ajax发送后如何访问另一个页面中的数组

通过ajax发送后如何访问另一个页面中的数组

PHP
白衣非少年 2021-04-05 13:15:31
我有一个数组student。我需要通过POST而不是从GET,在另一个php页面中传递此数组,因为它可以包含数千个字符。我试图打开新页面sheet.php并回显数组student,我只是简单地检查echo $_POST['mnu'],但是它显示未定义的索引错误。var http = null;if(window.XMLHttpRequest){    http = new XMLHttpRequest();}else{    http = new ActiveXObject('Microsoft.XMLHTTP');}http.open('POST','sheet.php',true);http.setRequestHeader('Content-type','application/x-www-form-urlencoded');http.onreadystatechange = function(){    if(http.readyState==4 && http.status==200){        window.open('sheet.php','_blank')    }}http.send('mnu='+JSON.stringify(student));
查看完整描述

2 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

您向发出两个请求sheet.php。第一个是“静默” POST请求,第二个是在成功完成第一个POST请求之后的GET请求。

//img1.sycdn.imooc.com//608272d10001e8ec11930523.jpg

第二个请求将不会共享第一个请求的有效负载。

如果我正确地理解以下代码,那么您应该做的是...

// Create a form element

// <form action="sheet.php" method="post"></form>

var tempForm = document.createElement('form');

tempForm.setAttribute('action', 'sheet.php');

tempForm.setAttribute('method', 'POST');

tempForm.setAttribute('target', '_blank'); // Open in new tab


// Create an input field

// <input name="mnu" value="...">

var tempInput = document.createElement('input');

tempInput.setAttribute('name', 'mnu');

tempInput.setAttribute('value', JSON.stringify(student)); // Set field value


// Add the input to the form

tempForm.appendChild(tempInput);



// Add the form to the body in order to post

document.body.appendChild(tempForm);


// Submit the form

tempForm.submit();


// Remove the form

document.body.removeChild(tempForm);

而且,如果您使用的是jQuery,则可以简化上面的代码。


$('<form>', {

    action: 'sheet.php',

    method: 'POST',

    target: '_blank',

    html: $('<input>', {

        name: 'mnu',

        value: JSON.stringify(student)

    }).prop('outerHTML')

}).appendTo($('body')).submit().remove();


查看完整回答
反对 回复 2021-04-23
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

更改http.send('mnu='+JSON.stringify(student));http.send(JSON.stringify(student));

然后在您sheet.php使用json_decode($_POST)中获取您的POST数据


查看完整回答
反对 回复 2021-04-23
  • 2 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信