Heim > Backend-Entwicklung > PHP-Tutorial > Die von Ajax in js an PHP übermittelten JSON-Daten können von PHP nicht abgerufen werden

Die von Ajax in js an PHP übermittelten JSON-Daten können von PHP nicht abgerufen werden

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-09-19 09:16:40
Original
1178 Leute haben es durchsucht

<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>
Nach dem Login kopieren
Nach dem Login kopieren

Stellen Sie sicher, dass Sie die Daten des Formularelements abrufen können. Beim Absenden der HTML-Adressleiste können alle übermittelten Daten
In insert.php

angezeigt werden
<code>$type =  $_POST['type'];
$title = $_POST['title'];
$imgSrc = $_POST['imgSrc'];
$author = $_POST['author'];
$createdAt = $_POST['createdAt'];
$content = $_POST['content'];</code>
Nach dem Login kopieren
Nach dem Login kopieren

Die übergebenen Daten können nicht abgerufen werden, Eingabeaufforderung
Hinweis: Undefinierter Index: Geben Sie D:xampphtdocs8-1baiduNewsinsert.php in Zeile 3 ein

Hinweis: Undefinierter Index: Titel in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 4

Hinweis: Undefinierter Index: imgSrc in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 5

Hinweis: Undefinierter Index: Autor in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 6

Hinweis: Undefinierter Index:createdAt in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 7

Hinweis: Undefinierter Index: Inhalt in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 8

Dies ist das erste Mal, dass ich PHP verwende. Beim Schreiben von JS und Knotendateninteraktion kann PHP es nicht abrufen. Kann mir jemand den Code zeigen?

Antwortinhalt:

<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>
Nach dem Login kopieren
Nach dem Login kopieren
Stellen Sie sicher, dass Sie die Daten des Formularelements abrufen können. Beim Absenden der HTML-Adressleiste können alle übermittelten Daten

In insert.php
angezeigt werden

<code>$type =  $_POST['type'];
$title = $_POST['title'];
$imgSrc = $_POST['imgSrc'];
$author = $_POST['author'];
$createdAt = $_POST['createdAt'];
$content = $_POST['content'];</code>
Nach dem Login kopieren
Nach dem Login kopieren
Die übergebenen Daten können nicht abgerufen werden, Eingabeaufforderung

Hinweis: Undefinierter Index: Geben Sie D:xampphtdocs8-1baiduNewsinsert.php in Zeile 3 ein

Hinweis: Undefinierter Index: Titel in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 4

Hinweis: Undefinierter Index: imgSrc in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 5

Hinweis: Undefinierter Index: Autor in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 6

Hinweis: Undefinierter Index:createdAt in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 7

Hinweis: Undefinierter Index: Inhalt in D:xampphtdocs8-1baiduNewsinsert.php in Zeile 8

Dies ist das erste Mal, dass ich PHP verwende. Beim Schreiben von JS und Knotendateninteraktion kann PHP es nicht abrufen. Kann mir jemand den Code zeigen?

Da Sie Objektdaten an den Hintergrund senden, können Sie vermutlich $_POST['data'] aus dem Hintergrund abrufen.

Ich werde ein einfaches Experiment durchführen,

Ihres


Ist das eine Frage dafür, diesen Absatz ohne Anführungszeichen zu schreiben? type:type Der Typ vorne ist ein String und der Typ hinten ist eine Variable. Sie können es fühlen....
<code>            //封装数据
            var data = {
                type:type,
                title:title,
                imgSrc:imgSrc,
                author:author,
                createdAt:createdAt,
                content:content
            };</code>
Nach dem Login kopieren

Mein Code:

1.html

2.php
<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>
Nach dem Login kopieren

<code>
<?php

$a = $_POST;

print_r($a);
echo json_encode($a);

?></code>
Nach dem Login kopieren
Es liegt ein Fehler in den von Ihnen übergebenen Daten vor. Die Daten sollten im JSON-Format geschrieben werden. Es wurde oben sehr deutlich gemacht.

Da Sie JS-Objekte anstelle von JSON kapseln, stehen die Schlüssel alle in Anführungszeichen. Sie können das Objekt vor dem Absenden mit JSON.stringify umwandeln json.-Spezifikation.

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage