PHP AJAX表单提交显示数组

时间:2012-10-21 00:39:56

标签: php jquery ajax arrays forms

当我提交表单在我的页面上发表评论时,页面会显示数据数组,而不只是显示评论淡入的页面。

这是我点击提交按钮后我在浏览器中看到的内容(记录插入正常):

{"streamid":1567,"cm":{"id":"0","avatar":"uploads\/30-av.jpg","name":"Mike<\/a>","content":"blah blah blah","time":"some seconds ago"}}

PHP

$action = $_GET['action'];
if ($action == 'blasting') {
$blast = input($_POST['blast']);
if ($blast AND strlen($blast) > 1) {
    $stm = $_DB->prepare('insert into wl_activity (user_id, action, posted_on, data) values (?, ?, ?, ?)');
    $stm->execute(array($_USER->get_user_id(), 'blast', time(), $blast));
    }
echo json_encode($array);
   }

我的表单代码

    <script type="text/javascript" src="js/ajaxupload.js"></script>
    <script type="text/javascript" src="js/jquery.form.js"></script>
     <script type="text/javascript" src="js/newsfeed.js"></script>

 <form method="post" action="index.php?cmd=ajax&action=blasting" id="blast-form">
            <textarea class="form_input" id="blastbox" name="blast" style="width:90%" ></textarea>
            <input type="submit" id="blastbtn" value="Post" class="form_submit" />

<div id="ajax-feed"></div>

    <?php $general = array(); ?>
    <?php
        foreach ($feeds as $f) {
            if ($f['action'] == 'blast')
                array_push($general, 'blast');
                //unset($general[count($general)-1]);
            else
                array_push($general, 'normal');
        }
    ?>

这是我的jquery.form.js http://pastebin.com/MP3uVdcP 这是我的newsfeed.js http://pastebin.com/ymSNjXJR

1 个答案:

答案 0 :(得分:0)

您的表单只是一个没有附加Ajax功能的简单表单(在您的示例中我们可以看到)。

您的浏览器已成功发布表单,方法是转到index.php?cmd=ajax&action=blasting,这是您看到JSON响应的位置。

您需要使用JavaScript挂钩到表单提交事件,停止默认操作(转到下一页)并使用Ajax发送它。

以下是一个例子:

$("#blast-form").submit(function(e){
    e.preventDefault();
    $.post($(this).action, $(this).serialize(), function(response) {
        $('#ajax-feed').html(response);
    });
});