gpt4 book ai didi

php - 使用 Javascript 将多个表单数据收集为 JSON 并通过 AJAX 发送到 PHP

转载 作者:行者123 更新时间:2023-11-28 11:03:22 25 4
gpt4 key购买 nike

我不确定我是否错过了 JSON 的要点,因为从我所看到的来看;教程、示例和问题不涉及通过 JSON/AJAX 将表单数据发布到 PHP。

我看到很多使用 jQuery 的例子,但我还没有学习 jQuery,因为我被告知最好先了解 Javascript,然后再使用 jQuery 作为简写。

我可以“收集”我的表单数据并处理并输出一个我认为是 JSON 语法的字符串。

"{p1:{'lname':'adsfer','fname':'asdf','email':'ewrt','sex':'male'},p2:{'lname':'erty','fname':'erty','email':'erty','sex':'male'}}"

HTML

<form id="p1">
<h2>Add Person 1:</h3>
Surname: <input type='text' name='lname' value='' ><br>
First Name:<input type='text' name='fname' value='' ><br>
Email: <input type='email' name='email' value=''><br>
Sex:<select name='sex'><option></option><option value='male'>Male</option><option value='female'>Female</option></select>
</form>

<form id="p2">
<h2>Add Person 2:</h3>
Surname: <input type='text' name='lname' value='' ><br>
First Name:<input type='text' name='fname' value='' ><br>
Email: <input type='email' name='email' value=''><br>
Sex:<select name='sex'><option></option><option value='male'>Male</option><option value='female'>Female</option></select>
</form>
<button onclick='submit_forms()'>Next</button>

Javascript

function submit_forms(){
var div = "content";
var url = "contract.php";
var forms = document.forms;
var txt = "{";
for(var i = 0 ;i<forms.length;i++){
txt += forms[i].id + ':{';
for(var n=0;n<forms[0].length;n++){
txt += "'" + forms[i][n].name + "':'" + forms[i][n].value +"',";
}
txt = txt.substring(0,txt.length-1);
txt += '},';
}
txt = txt.substring(0,txt.length-1);
txt +='}';
txt = JSON.stringify(txt);
alert(txt)
post_JSON_PHP(txt,div,url);
}

function post_JSON_PHP(vars,div,url){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(div).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type", "application/JSON");
xmlhttp.send(vars);
}

PHP

$json = json_decode($_POST['p1']);
var_dump($json);

PHP 回复注意:未定义索引:行的 p1和空。

这只是我的语法错误还是我完全走错了路?

最佳答案

我不知道当内容类型设置为 JSON 时,它不会提供 PHP 页面 POST 数据,因此无法使用 $_POST 检索它。

在我从 javascript 中删除 stringify 函数后,使用此 PHP 代码对我有用

$json = json_decode(file_get_contents('php://input'),true);
echo $json['p1']['fname'];

关于php - 使用 Javascript 将多个表单数据收集为 JSON 并通过 AJAX 发送到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18199891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com