如何插入表单数据到MySQL数据库表使用PHP和Ajax? [英] How to insert form data into MySQL database table with PHP and Ajax?

查看:132
本文介绍了如何插入表单数据到MySQL数据库表使用PHP和Ajax?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法将数据插入到我的数据库使用PHP,不知道如果我失去了一些东西。

首先我code验证使用AJAX方法的数据,但数据没有被插入到数据库中。

其次有PHP的审定,工程和数据成功插入回退,请参见下面

code

PHP     

 如果(使用isset($ _ POST [提交])){
        如果(修剪($ _ POST ['polltitle'])==){
            $ errortitle =<跨度类='错误'>请输入一个投票问题和LT; / SPAN>中;
            $ hasError =真;
        }
        其他{
            $ polltitle = $ _ POST ['polltitle'];
        }
        如果(修剪($ _ POST ['answerone'])==){
            $ erroropt_1 =<跨度类='错误'>请选择一个响应的名称和LT; / SPAN>中;
            $ hasError =真;
        }
        其他{
           $ answerone = $ _ POST ['answerone'];
        }

        如果(修剪($ _ POST ['answertwo'])==){
            $ erroropt_2 =<跨度类='错误'>请选择一个响应的名称和LT; / SPAN>中;
            $ hasError =真;
        }
        其他{
          $ answertwo = $ _ POST ['answertwo'];
        }

        如果(!使用isset($ hasError)){

        $ SQL =INSERT INTO投票(pollname,answer1,answer2,answer3,活动)VALUES('。$ polltitle,,,$ answerone,,,$ answertwo。','。 $ answerthree','$ activatepoll')。;
        的mysql_query($的SQL)或死亡(mysql_error());
        $ successmg =&其中p为H.; 1结果&添加所述; / P>中;
        }
    }
  ?>

<形式方法=邮报ID =postfrm>
                      < H2>创建一个新的投票问题和LT; / H>
                      <字段集类=数据形ID =insertfrm>
                            <标签=qtitle>问题标题< /标签><输入类型=文本名称=polltitle值=ID =qtitle/>
                            < PHP打印$ errortitle;?>

                            <标签=OPT1>回答1 LT; /标签><输入类型=文本名称=answerone值=ID =OPT1/>
                            < PHP打印$ erroropt_1;?>

                            <标签=OPT2>答案2'; /标签><输入类型=文本名称=answertwo值=ID =OPT2/>
                            < PHP打印$ erroropt_2;?>

                            <标签>使问题主动与LT; /标签><输入类型=复选框名称=activatepoll值=1ID =activepoll/>
                            <跨度类=小TXT>如果你想投票可见,请勾选< / SPAN>
                        <输入类型=提交名称=提交值=提交ID =addpoll/>
                      < /字段集>
                    < /形式GT;
                    < PHP打印$ successmg;?>


       $(文件)。就绪(函数(){
 $(#postfrm)。递交(函数(){
        $(错误)隐藏();
        VAR hasError = FALSE;
        。VAR nameVal = $(#qtitle)VAL();
        。VAR optVal1 = $(#OPT1)VAL();
        。VAR optVal2 = $(#OPT2)VAL();
        。VAR optVal3 = $(#OPT3)VAL();
        。VAR viewpoll = $(#activepoll)VAL();
        如果(nameVal ==''){
            $(#qtitle)后('<跨度类=错误>请输入一个投票问题和LT; / SPAN>');
            hasError = TRUE;
        }
        如果(optVal1 ==''){
            $(#OPT1)后('<跨度类=错误>输入回答< / SPAN>');
            hasError = TRUE;
        }
        如果(optVal2 ==''){
            $(#OPT2)后('<跨度类=错误>输入回答< / SPAN>');
            hasError = TRUE;
        }
        如果(hasError == FALSE){
            $(本).hide();
            $阿贾克斯({
                键入:POST,
                网址:validatedata.php
                数据 : ({
                    polltitle:nameVal,
                    answerone:optVal1,
                    answertwo:optVal2,
                    answerthree:optVal3,
                    $ activatepoll:viewpoll
                }),
                成功:函数(){
                     警报(工作);
                    },
               错误:函数(){
                    警报(没了:();
               },
               完成:函数(){
                   警报(谢谢);
               }
                 });
        }

        返回false;
    });

});
 

解决方案

为什么会出现一个问号之前activatepoll?

 数据:({
                    polltitle:nameVal,
                    answerone:optVal1,
                    answertwo:optVal2,
                    answerthree:optVal3,
                    $ activatepoll:viewpoll
                }),
 

此外,您应该送送变量$ _ POST [提交]:

 数据:({
                        polltitle:nameVal,
                        answerone:optVal1,
                        answertwo:optVal2,
                        answerthree:optVal3,
                        activatepoll:viewpoll,
                        提交:yeahhh
                    }),
 

I am having trouble inserting data into my database using PHP, not sure if I am missing something.

Firstly my code validates the data using ajax method, but the data is not inserted into the database.

Secondly have php validation as a fallback that works and the data is inserted successfully, please see code below

php

    if(isset($_POST['submit'])){
        if(trim($_POST['polltitle']) == ""){
            $errortitle = "<span class='error'>Please enter a poll question</span>";
            $hasError = true;
        }
        else{
            $polltitle = $_POST['polltitle'];
        }
        if(trim($_POST['answerone']) == ""){
            $erroropt_1 = "<span class='error'>Please choose a response name</span>";
            $hasError = true;
        }
        else{
           $answerone = $_POST['answerone'];
        }

        if(trim($_POST['answertwo']) == ""){
            $erroropt_2 = "<span class='error'>Please choose a response name</span>";
            $hasError = true;
        }
        else{
          $answertwo = $_POST['answertwo'];
        }

        if(!isset($hasError)){

        $sql = "INSERT INTO Poll (pollname, answer1 , answer2, answer3, active) VALUES ('".$polltitle."','".$answerone."','".$answertwo."','".$answerthree."','".$activatepoll."')";
        mysql_query($sql) or die(mysql_error());
        $successmg = "<p>1 record added</p>";
        }
    }
  ?>

<form method="post" id="postfrm">
                      <h2>Create a new poll question</h2>
                      <fieldset class="dataform" id="insertfrm">
                            <label for="qtitle">Question Title</label><input type="text" name="polltitle" value=""  id="qtitle" />
                            <?php print $errortitle;?>

                            <label for="opt1">Answer 1</label><input type="text" name="answerone" value="" id="opt1" />                      
                            <?php print $erroropt_1;?>

                            <label for="opt2">Answer 2</label><input type="text" name="answertwo"  value="" id="opt2"/>
                            <?php print $erroropt_2;?>

                            <label>Make question active</label><input type="checkbox" name="activatepoll" value="1" id="activepoll"/>
                            <span class="small-txt">If you want the poll to be visible please check the box</span>
                        <input type="submit" name="submit" value="Submit" id="addpoll"/>
                      </fieldset>
                    </form>
                    <?php print $successmg;?>


       $(document).ready(function() {
 $("#postfrm").submit(function(){
        $(".error").hide();
        var hasError = false;       
        var nameVal = $("#qtitle").val();
        var optVal1 = $("#opt1").val();
        var optVal2 = $("#opt2").val();
        var optVal3 = $("#opt3").val();
        var viewpoll = $("#activepoll").val();
        if(nameVal == '') {
            $("#qtitle").after('<span class="error">Please enter a poll question</span>');
            hasError = true;
        }
        if(optVal1 == '') {
            $("#opt1").after('<span class="error">Enter an answer</span>');
            hasError = true;
        }
        if(optVal2 == '') {
            $("#opt2").after('<span class="error">Enter an answer</span>');
            hasError = true;
        }
        if(hasError == false) {
            $(this).hide();
            $.ajax({
                type:"POST",
                url: "validatedata.php",
                data : ({
                    polltitle:nameVal,
                    answerone:optVal1,
                    answertwo:optVal2,
                    answerthree:optVal3,
                    $activatepoll:viewpoll
                }),
                success: function(){
                     alert("worked");
                    },
               error :function(){
                    alert("nope :( ");
               },
               complete : function(){
                   alert("thanks");
               }
                 });
        }

        return false;
    });

});

解决方案

why is there a questionmark before activatepoll?

data : ({
                    polltitle:nameVal,
                    answerone:optVal1,
                    answertwo:optVal2,
                    answerthree:optVal3,
                    $activatepoll:viewpoll
                }),

Further you should send the send the variable $_POST['submit']:

data : ({
                        polltitle:nameVal,
                        answerone:optVal1,
                        answertwo:optVal2,
                        answerthree:optVal3,
                        activatepoll:viewpoll,
                        submit: 'yeahhh'
                    }),

这篇关于如何插入表单数据到MySQL数据库表使用PHP和Ajax?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆