繁体   English   中英

Ajax不将数据发布到JSON对象中的PHP

[英]Ajax not posting data to PHP in JSON object

我尝试了使用不同的Ajax方法的多种方法,但无法使它正常工作。 我是ajax和json的新手,所以我认为这可能是因为数据不是采用某种形式,但是我的其他ajax进程的结构相同并且它们可以正常工作。 输入是在单击时拾取的,并出现在控制台中,但似乎是数据:没有将变量发送到php,因为当失败时,数据将在警报框中返回未定义。 sql查询等在php myadmin中运行良好,所以即时通讯最终并丢失了哈哈! 希望有人可以帮助我! 提前致谢!

的HTML

<?php 
    $page = "Blog | Fakebook"; 
    include "../inc/connect.php"; 
    include "../inc/login-check.php"; 
    include "../inc/header.php";
    include "../inc/menus.php";


?>
<div id="content-wrap" class="create-a-blog">
    <?php
        include "../inc/modals.php"; 
        echo "<input type='hidden' name='author' value='" . $_SESSION['userID'] . "' />"
    ?>
    <div id="hero">
        <a id="ajax-blog-bg" class="btn btn-hollow-wht add-img">Add Image</a>
        <a id="ajax-publish-blog" class="btn btn-hollow-wht pub-blg">Publish Blog</a>
        <section class='create-blog-title'>
            <textarea id="edit-blog-title" name="blog-title" class="title-input" >Enter Blog Title</textarea>
<!--            <p>Date and your name will be shown here</p>-->
        </section>
    </div>  
    <div id="create-blog-content">
        <div class="container rel">
            <article class="article">
                <textarea id="edit-blog-content" rows='4' name='blog-content' cols='50' >Go ahead and get your blog started</textarea>
            </article>
        </div>
    </div>
</div>

AJAX

$("#ajax-publish-blog").click(function (e){
        event.preventDefault();
        var blogTitle = $('#edit-blog-title').val();
        var content = $('#edit-blog-content').val();
        var image = $('.create-a-blog #hero').css('background-image');
        var cleanup = /\"|\'|\)/g;
        var bg = image.split('/').pop().replace(cleanup, '');
        var authorID = $('input[name=author]').val();
        console.log("Blog Title = " + blogTitle + " // Blog Content = " + content + " // bg image = " + bg + " // authorID =" + authorID);

        $.ajax({
            url: "../process/post-blog-process2.php",
            type: "POST",
            data: { blogTitle: blogTitle, content: content, image: bg, authorID: authorID },
            dataType: 'json',
            success: function(data){
                alert("ohyer" + " " + data.title + " " + data.authorID + " " + data.content + " " + data.image) 
            },
            error: function(data) {
                alert("ohno" + " " + data.title + " " + data.authorID + " " + data.content + " " + data.image)
            }
        });
    });

的PHP

<?php
    session_start(); //start a session  
    include "../inc/connect.php"; //include the database connection 

    //prevent SQL injection and get data from inputs
    $blogTitle = mysqli_real_escape_string($con, $_POST['blogTitle']);
    $image = mysqli_real_escape_string($con, $_POST['image']); 
    $content = mysqli_real_escape_string($con, $_POST['content']); 
    $authorID = mysqli_real_escape_string($con, $_POST['author']);


    $sql="INSERT INTO blog (blogTitle, image, content, date, authorID) VALUES ('$blogTitle', '$image', '$content', NOW(), '$authorID')";
    $result = mysqli_query($con, $sql) or die(mysqli_error($con)); //run the query 

    if (!$result) {
        $data['success'] = false;
        $data['title'] = $blogTitle;
        $data['authorID'] = $authorID;
        $data['content'] = $content;
        $data['image'] = $image;
    } else {
        $data['success'] = true;
        $data['redirect'] = '../pages/blog.php';
    }

    echo json_encode($data);
?>

preventDefault函数是一个不存在的变量(事件),在那里仅使用“ e”。 在“数据”变量名称中,使用双引号。 请勿使用:数据:{变量:变量}使用:数据:{变量:值}。 即,具有不同名称的变量和值。

$("#ajax-publish-blog").click(function (e){
    e.preventDefault();
    var titleBlog = $('#edit-blog-title').val();
    var contenido = $('#edit-blog-content').val();
    var image = $('.create-a-blog #hero').css('background-image');
    var cleanup = /\"|\'|\)/g;
    var bg = image.split('/').pop().replace(cleanup, '');
    var IDauthor = $('input[name=author]').val();
    console.log("Blog Title = " + titleBlog + " // Blog Content = " + contentido + " // bg image = " + bg + " // authorID =" + IDauthor);

    $.ajax({
        url: "../process/post-blog-process2.php",
        type: "POST",
        data: { 'blogTitle': titleBlog, 'content': contenido, 'image': bg, 'authorID': IDauthor },
        dataType: 'json',
        success: function(data){
            alert("ohyer" + " " + data.titleBlog + " " + data.IDauthor + " " + data.contenido + " " + data.image) 
        },
        error: function(data) {
            alert("ohno" + " " + data.titleBlog + " " + data.IDauthor + " " + data.contenido + " " + data.image)
        }
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM