我无法将此表单中的单个数据(deckName)记录到我的MySQL数据库中。我阅读并尝试了我在网上找到的所有解决方案,但我无法让它发挥作用。从PHPMyAdmin执行MySQL命令工作正常。
我需要在db(id,name,cards)的deck表中保存值。
Jquery / Ajax脚本:
<script>
$(document).ready(function(){
$(document).on('submit','.save',function(){
var deckName = $('.deck').val();
console.log(deckName);
$.ajax({
type: "POST",
url: "submit.php",
data: { "name": deckName},
success: console.log('worked')
});
});
});
</script>
形式:
<div class="decklist">
<form method="post" id="decklist">
<input class="deck" id="deckN" type="text" value="Deck name"/>
<input class="save" type="submit" value="Save Deck"/>
</form>
<div class="list">
<ul class="d_list">
<li class='added_card' id='list_0'></li>
</ul>
</div>
</div>
submit.php:
<?php
if(isset($_POST["name"])&& strlen($_POST["name"])>0){
$deckName = $_POST["name"];
$cards = 0;
echo $deckName;
$conn = new mysqli("localhost:8080","root","","ken");
if($conn -> connect_errno){
die("Failed to connect: (". $conn->connect_errno. ")".$conn->connect_error);
}
$insert = $conn->query ("INSERT INTO `deck` (deck, cards) VALUES ($deckName, $cards)");
if ($insert){
echo 'Successfully saved '. $deckName;
$conn -> close();
}
}
?>
此外,当我点击Save Deck提交时,div会刷新,而我认为它不应该是ajax。
我尝试使用click而不是submit,并且console.log从ajax函数正确地返回了所有内容,而div每次都不刷新,但是提交日志不再显示在控制台中。 我从来没有从submit.php的回声中得到任何东西,从来没有。
答案 0 :(得分:2)
尝试使用preventDefault;
,如此
$(document).on('submit','.save',function(e){
e.preventDefault;
希望它能解决你的问题!
答案 1 :(得分:0)
你必须在字符串值周围加上引号:
<div id="text" class="collapse panel-body">
答案 2 :(得分:0)
如何改变这样的js:
$(".decklist").on("click", ".save", function(){
$.post("submit.php", { name: deckName }).success(function(){
console.log('worked');
});
});
答案 3 :(得分:0)
您需要绑定form
提交事件:
$(document).ready(function(){
$("#decklist").on('submit',function(e){
e.preventDefault();
var deckName = $('.deck').val();
console.log(deckName);
$.ajax({
type: "POST",
url: "submit.php",
data: { "name": deckName},
success: function(response) {
console.log('worked')
}
});
});
});
答案 4 :(得分:0)
$(document).ready(function(){
$("#decklist").on('submit',function(e){
e.preventDefault();
var deckName = $('#deck').val();
console.log(deckName);
$.ajax({
type: "POST",
url: "submit.php",
data: { "name": deckName},
success: function(response) {
console.log('worked')
}
});
});
});
它起作用,改变$('#deck')。val();