我正在做一个基于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的新手,我需要帮助...我已经尝试在这个论坛找到解决方案,但没找到。
答案 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);
});
};