使用AJAX / JQuery将表单数据发布到php脚本

时间:2016-10-10 21:53:48

标签: javascript php jquery html ajax

我将此网站上的其他答案和各种教程拼凑在一起。不知道为什么它不起作用,我没有其他方法的运气。

这是我的页面部分html:

    <form id="newMovie" >
        Title:<input type='text' id='title'/>
        Genres:<input type='text' id='genres'/>
        Cast:<input type='text' id='cast'/>
        Director:<input type='text' id='director'/>
        Metascore:<input type='text' id='metascore'/>
        <input type="button" value="Send" id="theButton"/>
    </form>
    ...
    <table>
        <tr>
            <td id="tr1td1">
                <p>..</p>
            </td>
            ...

在“theButton”上单击,我想从表单中的输入中获取值并将其POST到php脚本,这是我的AJAX:

<script>
        $(document).ready(function(){
            $("#theButton").click(function(){

                var titleData = $('#title');
                alert(titleData); 

我在这里有一个警告调试,这个警报甚至没有弹出,所以在我们到达这里之前似乎失败了?

                var genresData = $('#genres');
                var castData = $('#cast');
                var directorData = $('#director');
                var metascoreData = $('#metascore');

                var dataIn = {
                    title : titleData.val();
                    genres : genreData.val();
                    cast : castData.val();
                    director : directorData.val();
                    metascore : metascoreData.val();
                }
                var dataOut = $('#tr1td1');
                $.post("..../insert.php", dataIn, function(data, status) {
                    dataOut.html(data);
                });
            });
        });
    </script>

在PHP脚本中,我会试着抓住像这样的值:

$titleData=$_POST['title'];
$genresData=$_POST['genres'];
$castData=$_POST['cast'];
$directorData=$_POST['director'];
$metascoreData=$_POST['metascore'];

3 个答案:

答案 0 :(得分:2)

Javascript对象属性以逗号,分隔,而不是分号。另外,在某些浏览器中还有其他问题 - 不要划分最终属性。

答案 1 :(得分:2)

您的评论指向错误:

  

未捕获的语法错误:意外;在第27行,这是&#34; dataIn&#34;中的第一行。括号

你的对象构造中有错误的分号:

var dataIn = {
    title : titleData.val();
    genres : genreData.val();
    cast : castData.val();
    director : directorData.val();
    metascore : metascoreData.val();
}

应该是:

var dataIn = {
    title : titleData.val(),
    genres : genreData.val(),
    cast : castData.val(),
    director : directorData.val(),
    metascore : metascoreData.val()
};

对象文字是一个以逗号分隔的属性列表,作为单个整行代码,而不是单独的代码行。

答案 2 :(得分:1)

你的方式太长了,你缺少name =“”attrib in tags和

将tag =“”添加到标记中 你可以把它变得更简单,如下面

首先改变你的

<input type="button" value="Send" id="theButton"/>

<button type="button" id="theButton" name="SubBtn" onclick="postsomething();">Send</button>

<script type="text/javascript">
    function postsomething() {
            $.ajax({
                type: 'POST',
                url: '../insert.php', //your php file
                data: $('#newMovie').serialize(), //here your form id
                success: function (answer) {
                    $("#result").html(answer) //if you wanna return data from your php file
                }
            })
    }
</script>