PHP - 在同一个文件中插入数据库

时间:2017-02-26 11:02:07

标签: php jquery html ajax

我正在做一个基于php的网站,我有一个提交表单的问题。 例如,我在index.php中有以下形式:

<form method='post' action='./insert_database.php'>    
<input type="checkbox" name="value[]" value="name1">'name1'</br>
<input type="checkbox" name="value[]" value="name2">'name2'</br>
<input type="checkbox" name="value[]" value="name3">'name3'</br>
<input type="checkbox" name="value[]" value="name4">'name4'</br>
<input type="checkbox" name="value[]" value="name5">'name5'</br>
<input type="checkbox" name="value[]" value="name6">'name6'</br>
<input type='submit' name='submit' value='submit'>
</form>

然后,我可以标记一个复选框,当我提交表单时,它会通过POST转到另一个URL“./insert_database.php”并启动正确的查询。

问题是我不想要这个。我不想离开当前页面。 存在任何形式在后台执行并留在index.php?我知道我可以在insert_database.php中对index.php进行“重定向”但是..我认为这是一个更好的主意。

我的意思是,我不想在提交表单时将用户从index.php中移出。或者存在另一种形式将表单值插入数据库?

提前谢谢。

让我更好地解释一下我的情况......

这是我的PHP代码:

echo "<form>";
        if (is_dir($dir)){
            if ($dh = opendir($dir)){
                while (($file = readdir($dh)) !== false){
                    if ($file !== '.' && $file !== '..'){
                        echo '
                        <input type="checkbox" class="song" name="song[]" value="'.$file.'">'.$file.'</br>';
                    }   
                }
                closedir($dh);
            }
        }

    echo "<button id='submit'>Submit</button>";
echo "</form>";

此功能正在读取DIR并创建一个带有复选框的表单,其中包含此目录中的所有歌曲。然后,如果您检查示例5首歌曲并按下提交按钮,它将执行以下脚本:

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script>
    $('#submit').click(function() {
    $.ajax({
        url: "./functions/add_list.php",
        type: "post",
        data: $('.song:checked').serialize();
    });
    });

    </script>

</head>

Wheere ./functions/add_list有一个PHP代码,用于在数据库中插入值。 问题是这对我不起作用,我不知道为什么......我是ajax的新手,我需要帮助...我已经尝试在这个论坛找到解决方案,但没找到。

2 个答案:

答案 0 :(得分:0)

使用AJAX在后台提交请求是可行的方法。

使用像jQuery Form这样的插件可以很容易地解决这个问题:http://malsup.com/jquery/form/

答案 1 :(得分:0)

function submit_form() {
    $.post("./insert_database.php", { 
            //the names of the keys being passed into POST
            first_name: $("#tbxFirstName").val(),
            last_name: $("#tbxLastName").val()
        }, function(msg) {
        //What gets returned by the PHP
        console.log(msg);
    });
};