<code>$('#saveNewData').click(function () { //保存数据的按钮被点击的时候,获得当前数据 var type = $('select[name="type"] option:selected').val(); var title = $('input[name="title"]').val(); var imgSrc = $('input[name="imgSrc"]').val(); var author = $('input[name="author"]').val(); var createdAt = $('input[name="createdAt"]').val(); var content = $('textarea[name="content"]').val(); //封装数据 var data = { type:type, title:title, imgSrc:imgSrc, author:author, createdAt:createdAt, content:content }; //ajax提交数据 $.ajax({ type: "POST", url:'insert.php', data:data, datatype:'json', error: function(request) { alert("保存失败"); }, success: function(msg) { alert("保存成功"); alert(data); } }); })</code>
양식 요소의 데이터를 가져올 수 있는지 확인하세요. html 주소 표시줄을 제출할 때 제출된 모든 데이터가
insert.php에
<code>$type = $_POST['type']; $title = $_POST['title']; $imgSrc = $_POST['imgSrc']; $author = $_POST['author']; $createdAt = $_POST['createdAt']; $content = $_POST['content'];</code>
전달된 데이터를 가져올 수 없습니다.
주의사항: 정의되지 않은 색인: 3행에 D:xampphtdocs8-1baiduNewsinsert.php를 입력하세요
공지: 정의되지 않은 색인: 4행의 D:xampphtdocs8-1baiduNewsinsert.php 제목
공지: 정의되지 않은 인덱스: 5행의 D:xampphtdocs8-1baiduNewsinsert.php에 있는 imgSrc
공지: 정의되지 않은 색인: 6행의 D:xampphtdocs8-1baiduNewsinsert.php의 작성자
공지: 정의되지 않은 인덱스: 7행의 D:xampphtdocs8-1baiduNewsinsert.php의 createAt
공지: 정의되지 않은 색인: 8행의 D:xampphtdocs8-1baiduNewsinsert.php 내용
저는 처음으로 PHP를 사용합니다. js와 노드 데이터 상호작용을 작성할 때 데이터 전송 양식을 사용했는데, PHP에서 코드를 얻을 수 없습니다.
<code>$('#saveNewData').click(function () { //保存数据的按钮被点击的时候,获得当前数据 var type = $('select[name="type"] option:selected').val(); var title = $('input[name="title"]').val(); var imgSrc = $('input[name="imgSrc"]').val(); var author = $('input[name="author"]').val(); var createdAt = $('input[name="createdAt"]').val(); var content = $('textarea[name="content"]').val(); //封装数据 var data = { type:type, title:title, imgSrc:imgSrc, author:author, createdAt:createdAt, content:content }; //ajax提交数据 $.ajax({ type: "POST", url:'insert.php', data:data, datatype:'json', error: function(request) { alert("保存失败"); }, success: function(msg) { alert("保存成功"); alert(data); } }); })</code>
양식 요소의 데이터를 가져올 수 있는지 확인하세요. html 주소 표시줄을 제출할 때 제출된 모든 데이터가
insert.php에
<code>$type = $_POST['type']; $title = $_POST['title']; $imgSrc = $_POST['imgSrc']; $author = $_POST['author']; $createdAt = $_POST['createdAt']; $content = $_POST['content'];</code>
전달된 데이터를 가져올 수 없습니다.
주의사항: 정의되지 않은 색인: 3행에 D:xampphtdocs8-1baiduNewsinsert.php를 입력하세요
공지: 정의되지 않은 색인: 4행의 D:xampphtdocs8-1baiduNewsinsert.php 제목
공지: 정의되지 않은 인덱스: 5행의 D:xampphtdocs8-1baiduNewsinsert.php에 있는 imgSrc
공지: 정의되지 않은 색인: 6행의 D:xampphtdocs8-1baiduNewsinsert.php의 작성자
공지: 정의되지 않은 인덱스: 7행의 D:xampphtdocs8-1baiduNewsinsert.php의 createAt
공지: 정의되지 않은 색인: 8행의 D:xampphtdocs8-1baiduNewsinsert.php 내용
저는 처음으로 PHP를 사용합니다. js와 노드 데이터 상호작용을 작성할 때 데이터 전송 양식을 사용했는데, PHP에서 코드를 얻을 수 없습니다.
객체 데이터를 백그라운드로 보내기 때문에 백그라운드에서 $_POST['data']를 얻을 수 있을 것 같습니다.
간단한 실험을 해보겠습니다.
당신
<code> //封装数据 var data = { type:type, title:title, imgSrc:imgSrc, author:author, createdAt:createdAt, content:content };</code>
이 문단을 따옴표 없이 쓰기 위한 질문인가요? type:type 앞의 타입은 문자열이고 뒤의 타입은 변수라는 느낌이 드네요....
내 코드:
1.html
<code><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> </title> <script src="http://lib.sinaapp.com/js/jquery/3.1.0/jquery-3.1.0.min.js"></script> </head> <body> <input id='qq' type="text" name='qq123' value='xiaole' > <input id='qq123' type="submit"> <script> $('#qq123').click(function () { var data = $('#qq').val(); // console.log(data); var data={'data':data}; $.ajax({ type: "POST", url:'2.php', data:data, datatype:'json', error: function(request) { alert("保存失败"); }, success: function(msg) { console.log(msg); } }); }); </script> </body> </html></code>
2.php
<code> <?php $a = $_POST; print_r($a); echo json_encode($a); ?></code>
전달한 데이터에 오류가 있습니다. 데이터는 json 형식으로 작성해야 합니다. 위에서 매우 명확하게 설명되었습니다.
json 대신 JS 객체를 캡슐화하기 때문에 일반 json의 경우 키가 모두 따옴표로 묶여 있습니다. 객체를 제출하기 전에 JSON.stringify를 사용하여 객체를 문자열로 변환하는 것이 좋습니다. json.사양.