[英]passing form data to mySQL through AJAX
I am using JavaScript and AJAX to send form data to a php processing file to then populate an SQL database without refreshing the initial form page.
php/SQL 连接正常,但未正确发送表单数据。
有两个字段:一个称为“选择”的广播组和一个称为“评论”的文本字段。 填充数据库时,选择字段始终为“是”(3 个单选按钮中的第一个),注释字段始终为空白。 我认为问题一定是构建数据字符串的方式,但是数小时的修补并没有带来成功。
这是 html 表格
<form id="paPoll">
<label><input type="radio" name="RadioGroup1" value="yes" id="choice1">Yes</label>
<label><input type="radio" name="RadioGroup1" value="no" id="choice2">No</label>
<label><input type="radio" name="RadioGroup1" value="dont_know" id="choice3">I Don't Know</label>
<label for="comments">Comments?</label><input name="comments" type="text" id="comments" size="25" maxlength="60">
<input type="button" name="form_process" id="form_process" value="submit" onClick="$.fn.removeMbMenu($.mbMenu.options.actualOpenedMenu,true);" />
</form>
这是 Javascript/AJAX function
<script type="text/javascript">
$(function() {
$("#form_process").click(function() {
var choice = $("#choice").val();
var comments = $("#comments").val();
var dataString = 'choice='+ choice + '&comments=' + comments;
$.ajax({
type: "POST",
url: "**ABSOLUTE URL TO PROCESSOR**",
data: dataString
});
});
});
</script>
这是 php 处理器
<?php
$choice = $_POST ['choice'];
$comments = $_POST ['comments'];
//perform insert
$query = mysql_query("INSERT INTO paPoll
(choice, comments)
VALUES
('$choice', '$comments')");
if (!query) {
die("Database query failed: " . mysql_error());
}
?>
想法或建议?
我在这里发现了一个非常相似的问题,但该线程已有 3 年历史。 一位用户建议了这个
//Instead of using
data: dataString
//use
data : {param: value, param2: value2}
但我不确定他如何或以什么格式获取参数值。
谢谢
-音节
如果是我,我会通过使用表单插件让自己更轻松。 它已经有了一组ajaxSubmit
函数,可以毫不费力地对表单进行 ajaxify。 它还有方便的formSerialize
function 它将为 ajax 提交或 append 的表单序列化为链接的查询字符串。 :-)
这就是说没有插件并利用现有代码的更简单方法:
$("#form_process").click(function() {
$.ajax({
type: "POST",
url: "**ABSOLUTE URL TO PROCESSOR**",
data: {
'choice': $("input[@name=RadioGroup1]:checked").val(),
'comments': $("#comments").val()
}
});
});
不过,无论哪种方式,您还需要将所有无线电输入更改为具有唯一 ID(或根本没有 ID)......您不能使用与要求所有 id 属性在文档中具有唯一值相同的那个。
几周前我有同样的问题,我只是尝试使用这样的旧方法
<script type="text/javascript">
$(function() {
$("#form_process").click(function() {
//$("#choice").val(); //you cannot use the same id for more than 1 tag
var choice = 0;
if(document.getElementById("choice1").checked) choice='Yes';
else if(document.getElementById("choice2").checked) choice='No';
else if(document.getElementById("choice3").checked) choice='Dont Know';
var comments = document.getElementById('comments').value; //$("#comments").val();
var dataString = 'choice='+ choice + '&comments=' + comments;
$.ajax({
type: "POST",
url: "**ABSOLUTE URL TO PROCESSOR**",
data: dataString
});
});
});
</script>
真的我不知道,我认为这不是最好的方法,但这对我有用:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.