【问题标题】:jQuery Post Form Data to PHPjQuery 将表单数据发布到 PHP
【发布时间】:2013-02-05 16:03:12
【问题描述】:

我正在使用 HTML 表单中的数据从 jQuery 向 PHP 发布数据。

这是发送 POST 的 jQuery 行

$.post("InsertNewQuestion.php", $("Create_Question_Form").serialize());

这是 PHP 代码

<?php
$con = mysql_connect("localhost","root","");

mysql_select_db("Quizzes",$con);

$Quiz_Name = $_POST['Question'];
echo $Quiz_Name;
$Option_1 = $_POST['Option1'];
echo $Option_1;
$Option_2 = $_POST['Option2'];
echo $Option_2;
$Option_3 = $_POST['Option3'];
echo $Option_3;
$Option_4 = $_POST['Option4'];
echo $Option_4;
$Option_5 = $_POST['Option5'];
echo $Option_5;

$rowIDList = mysql_query("SELECT rowID FROM TestQuiz");

$ColumnValues = array();

$CurrentGreatestRowID = -1;

$LCV = 1;

while($row1 = mysql_fetch_assoc($rowIDList)) {

    if ($CurrentGreatestRowID < $row1['rowID']) {
        $CurrentGreatestRowID = $row1['rowID'];
    }
    $LCV++;  
}   

$CurrentRowID = $CurrentGreatestRowID+1;        

$sql = "INSERT INTO TestQuiz (rowID,Quiz_Name,Option_1,Option_2,Option_3,Option_4,Option_5,Option_1_Votes,Option_2_Votes,Option_3_Votes,Option_4_Votes,Option_5_Votes)
VALUES(".$CurrentRowID.",'".$Question."','".$Option1."','".$Option2."','".$Option3."','".$Option4."','".$Option5."',0,0,0,0,0);";

if (mysql_query($sql,$con)) {
    echo "Inserted values";
}
else {
    echo ("Could not insert values: ". mysql_error());
}

mysql_close($con);
?>

这是 HTML 表单

<form id="Create_Question_Form" action="" method="POST">
Question Name: input id="Question" class="Create_Question_Text_Box" type="text" name="Question_Name"><span id="Invalid_1"></span><br>
Option 1: input id="Option1" class="Create_Question_Text_Box" type="text" name="Option_1"><span id="Invalid_2"></span><br>
Option 2: input id="Option2" class="Create_Question_Text_Box" type="text" name="Option_2"><span id="Invalid_3"></span><br>
Option 3: input id="Option3" class="Create_Question_Text_Box" type="text" name="Option_3"><span id="Invalid_4"></span><br>
Option 4: input id="Option4" class="Create_Question_Text_Box" type="text" name="Option_4"><span id="Invalid_5"></span><br>
Option 5: input id="Option5" class="Create_Question_Text_Box" type="text" name="Option_5"><span id="Invalid_6"></span><br>
input type="Submit" id="Question_Submit" value="Create Question"></input>
</form>

【问题讨论】:

  • 问题是数据没有被发送到 InsertNewQuestion.php。虽然,InsertNewQuestion.php 仍然被称为数据没有被发送,所以正在创建一个空行。
  • 不应该是$("#Create_Question_Form").serialize()吗?注意#
  • 我做了更改它仍然不起作用,(只有空行仍在创建中)。
  • 您是否有不能对rowID 使用自动增量的原因?
  • 如果任何字段包含',那么您有一个 sql 注入漏洞会破坏您的查询。

标签: php jquery ajax forms post


【解决方案1】:

您的表单选择器应该是#Create_Question_Form。注意 # 表示这是一个元素 ID。

$("#Create_Question_Form").serialize()

更新

您正在通过 ID 而不是名称访问 $_POST 值。试试这个:

$Option_1 = $_POST['Option_1'];
$Option_2 = $_POST['Option_2'];
// etc

【讨论】:

  • 我已经修复了这个错误,但它仍然不起作用,(只创建空行)。
  • 成功了。问题是我没有更新 $sql = "INSERT INTO TestQuiz (rowID,Quiz_Name,Option_1,Option_2,Option_3,Option_4,Option_5,Option_1_Votes,Option_2_Votes,Option_3_Votes,Option_4_Votes,Option_5_Votes) 行中的 Options_1、Option_2 变量名称".$CurrentRowID.",'".$Question."','".$Option1."','".$Option2."','".$Option3."','".$Option4." ','".$Option5."',0,0,0,0,0);";感谢大家的帮助!很好的响应时间!。
【解决方案2】:
input type="Submit" id="Question_Submit" value="Create Question"></input>
<input type="Submit" id="Question_Submit" value="Create Question" />

你好像没有少括号

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多