如何插入表单数据到MySQL数据库表使用PHP和Ajax? [英] How to insert form data into MySQL database table with PHP and Ajax?
本文介绍了如何插入表单数据到MySQL数据库表使用PHP和Ajax?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法将数据插入到我的数据库使用PHP,不知道如果我失去了一些东西。
首先我code验证使用AJAX方法的数据,但数据没有被插入到数据库中。
其次有PHP的审定,工程和数据成功插入回退,请参见下面
codePHP
如果(使用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屋!
查看全文