Javascript 如何使用相同名称的元素创建Ajax表单帖子?
因此,我的表单的一部分具有相同的“Name”值,该值将存储为数组 我试图做的是将这些值发送到AJAX中,然后发送到PHP以更新我的数据库 这里的问题是,我不确定如何将相同的输入名称值发送到AJAX中,并允许我的PHP访问这些值 代码如下所示 编辑:注意,我正在构建一个phonegap应用程序,因此无法直接将表单发送到我的php脚本 编辑2:添加了我的php脚本,解释如何处理信息 HTML: PHP: 在发布'pref_subject'的值之前,我将发布请求表中的其他值,以便发布'last_id' 在获得最后一个id后,我将把“pref_主题”发布到第二个表中Javascript 如何使用相同名称的元素创建Ajax表单帖子?,javascript,php,jquery,ajax,cordova,Javascript,Php,Jquery,Ajax,Cordova,因此,我的表单的一部分具有相同的“Name”值,该值将存储为数组 我试图做的是将这些值发送到AJAX中,然后发送到PHP以更新我的数据库 这里的问题是,我不确定如何将相同的输入名称值发送到AJAX中,并允许我的PHP访问这些值 代码如下所示 编辑:注意,我正在构建一个phonegap应用程序,因此无法直接将表单发送到我的php脚本 编辑2:添加了我的php脚本,解释如何处理信息 HTML: PHP: 在发布'pref_subject'的值之前,我将发布请求表中的其他值,以便发布'last_id'
$connection = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($connection->connect_error) {
die("Connection failed: " . $connection->connect_error);
}
$sd_given_name = addslashes($_POST["sd_given_name"]);
$sd_family_name = addslashes($_POST["sd_family_name"]);
$sd_email = $_POST["sd_email"];
$gender = $_POST["gender"];
$pref_edu_level = $_POST["pref_edu_level"];
$pref_area = $_POST["pref_area"];
$estate = $_POST["estate"];
$requestPrice = $_POST["requestPrice"];
$lesson_hrs = $_POST["lesson_hrs"];
$lesson_amt = $_POST["lesson_amt"];
$request_id;
$pref_subject = $_POST["pref_subject"];
$newRequest = "INSERT INTO Request (SD_Given_Name, SD_Family_Name, SD_Email, Gender,
Pref_Edu_Level_ID, Pref_Area_ID, Estate,
Request_Price, Lesson_Hrs, Lesson_Amt)
VALUES ('$sd_given_name', '$sd_family_name', '$sd_email', '$gender',
$pref_edu_level, $pref_area, '$estate',
$requestPrice, $lesson_hrs, $lesson_amt)";
if ($connection->query($newRequest) === TRUE) {
$request_id = $connection->insert_id;
//echo "New record created successfully. Last inserted ID is: " + $last_id;
}
else {
echo "Error: " . $newRequest . "<br>" . $connection->error;
}
for ($i = 0; $i < count($pref_subject); $i++) {
if ($pref_subject[$i] > 0) {
$addSubject = "INSERT INTO Request_Subject (Request_ID, Subject_ID)
VALUES ($request_id, $pref_subject[$i])";
$sendSubject = ($connection->query($addSubject));
if ($sendSubject === FALSE) {
echo "Error: " . $addSubject . "<br>" . $connection->error;
}
}
}
$connection->close();
$connection=mysqli\u connect($servername、$username、$password、$dbname);
//检查连接
如果($connection->connect\u错误){
die(“连接失败:”.$Connection->connect\u错误);
}
$sd_given_name=addslashes($_POST[“sd_given_name”]);
$sd_family_name=addslashes($_POST[“sd_family_name]”);
$sd_email=$_POST[“sd_email”];
$gender=$_POST[“gender”];
$pref_edu_level=$_POST[“pref_edu level”];
$pref_area=$_POST[“pref_area”];
$estate=$_POST[“estate”];
$requestPrice=$_POST[“requestPrice”];
$lesson\u hrs=$\u POST[“lesson\u hrs”];
$lessure\u amt=$\u POST[“lessure\u amt”];
$request_id;
$pref_subject=$_POST[“pref_subject”];
$newRequest=“在请求中插入(SD\u姓名、SD\u姓氏、SD\u电子邮件、性别、,
优先教育级别ID、优先地区ID、地产、,
申请价格、课时、课时金额)
值(“$sd\U给定名称”、“$sd\U家族名称”、“$sd\U电子邮件”、“$SEXT”,
$pref_edu_level、$pref_area、$estate',
$requestPrice,$lesson_hrs,$lesson_amt)”;
if($connection->query($newRequest)==TRUE){
$request\u id=$connection->insert\u id;
//echo“已成功创建新记录。上次插入的ID为:“+$Last\u ID;
}
否则{
echo“Error:”.$newRequest.“
”$connection->Error;
}
对于($i=0;$i0){
$addSubject=“插入请求主题(请求ID,主题ID)
值($request_id,$pref_subject[$i])”;
$sendSubject=($connection->query($addSubject));
如果($sendSubject==FALSE){
echo“Error:.$addSubject.”
“$connection->Error;
}
}
}
$connection->close();
您可以将相同的输入名称值发送到AJAX
$("#submit").on("click", function(e){
var form_data = $('#frm_id').serialize();
$.ajax({
type: "POST",
url: serverURL + "/php/sendRequestProcess.php",
data: form_data,
dataType: "json",
success: function(response){
//data - response from server
error: function (jqXHR, textStatus, errorThrown)
{
}
});
});
表单_数据:可以是数组或名称-值对
success:当AJAX发布成功时调用回调函数
错误:当AJAX POST失败时调用回调函数
要处理JSON数据,请设置dataType=“JSON”问题:为什么不将表单发送到PHP脚本?PHP运行,然后是标题('Location:)@曾斯坦编辑了这篇文章。我将把这段代码移植到一个phonegap应用程序,我不认为我可以直接访问php脚本
id的
应该是唯一的,你可以使用pref_subject_1
等等。然后使用选择器中的名称部分,而不是id
(不带[])。您可以使用与此问题中相同的名称迭代thorogh元素@Ekim我尝试按照解决方案进行操作,但如何将pref_主题的数据存储在Ajax中?如何处理发送到php的信息?在php端,获取您的数据,如$u POST['sd_given_name']…和其他领域一样,做你想做的任何事情。嗨,谢谢。我设法使它起作用。尽管我可以问一下,我应该在成功和错误回调中添加什么。对ajax来说仍然是新的。好的,success您将从服务器获得响应,如果您得到任何错误,则在错误回调中显示警报。在php代码中,将json_编码作为成功响应放在客户端。
$connection = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($connection->connect_error) {
die("Connection failed: " . $connection->connect_error);
}
$sd_given_name = addslashes($_POST["sd_given_name"]);
$sd_family_name = addslashes($_POST["sd_family_name"]);
$sd_email = $_POST["sd_email"];
$gender = $_POST["gender"];
$pref_edu_level = $_POST["pref_edu_level"];
$pref_area = $_POST["pref_area"];
$estate = $_POST["estate"];
$requestPrice = $_POST["requestPrice"];
$lesson_hrs = $_POST["lesson_hrs"];
$lesson_amt = $_POST["lesson_amt"];
$request_id;
$pref_subject = $_POST["pref_subject"];
$newRequest = "INSERT INTO Request (SD_Given_Name, SD_Family_Name, SD_Email, Gender,
Pref_Edu_Level_ID, Pref_Area_ID, Estate,
Request_Price, Lesson_Hrs, Lesson_Amt)
VALUES ('$sd_given_name', '$sd_family_name', '$sd_email', '$gender',
$pref_edu_level, $pref_area, '$estate',
$requestPrice, $lesson_hrs, $lesson_amt)";
if ($connection->query($newRequest) === TRUE) {
$request_id = $connection->insert_id;
//echo "New record created successfully. Last inserted ID is: " + $last_id;
}
else {
echo "Error: " . $newRequest . "<br>" . $connection->error;
}
for ($i = 0; $i < count($pref_subject); $i++) {
if ($pref_subject[$i] > 0) {
$addSubject = "INSERT INTO Request_Subject (Request_ID, Subject_ID)
VALUES ($request_id, $pref_subject[$i])";
$sendSubject = ($connection->query($addSubject));
if ($sendSubject === FALSE) {
echo "Error: " . $addSubject . "<br>" . $connection->error;
}
}
}
$connection->close();
$("#submit").on("click", function(e){
var form_data = $('#frm_id').serialize();
$.ajax({
type: "POST",
url: serverURL + "/php/sendRequestProcess.php",
data: form_data,
dataType: "json",
success: function(response){
//data - response from server
error: function (jqXHR, textStatus, errorThrown)
{
}
});
});