[英]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.