使用java脚本将动态数组作为不同的变量发布 [英] posting dynamic arrays as distinct variables using java script
问题描述
我试图动态添加主题和获得的成绩的字段,但是在使用java脚本发布这些变量时出现错误Undefined index:subject in ...。
我的发布机制可能会遗漏一些内容。请注意,在表单数据中我没有放置id =subject以避免仅为一个主题选择id,但是我似乎不知道如何在java脚本中表示这个,因为我们将看到下面。
表格数据如下;
Am trying to dynamically add the fields for subjects and the grades obtained, but am getting an error "Undefined index: subject in..." when posting those variables using java script.
Could there be something am missing with my posting mechanism. Notice that in the form data am not puting id="subject" to avoid picking the id for only one subject, but I
dont seem to know how to represent this in the java script as we will see below.
form data as follows;
学历资格
Academic Qualification
require_once (connection / connectPDO.php);
$ sql =CALL sp_getSubjects();
//使用PDO启动并调用存储过程
$ pdo = new PDOConfig();
$ resultsSubject = $ pdo-> query($ sql);
foreach($ resultsSubject as $ rowSubject)
{
?>
require_once("connection/connectPDO.php");
$sql="CALL sp_getSubjects()";
//Initiate and Call Stored Procedure Using PDO
$pdo = new PDOConfig();
$resultsSubject = $pdo->query($sql);
foreach($resultsSubject as $rowSubject)
{
?>
< select name =grade []id =成绩class =验证[必填]>
< option value => - 选择成绩 - < / option>
$ sql =CALL sp_grabGrades();
//使用PDO启动并调用存储过程
$ pdo = new PDOConfig();
$ resultset = $ pdo-> query($ sql);
foreach($ resultset as $ row)
{
?>
< option value => < / option>
< / select>
表格如下
英文< - select - >
生物学< - 选择 - >
科学< - 选择 - >
java脚本代码如下;
$(文件).ready(function(){
$(#submit)。 click(function(){
//如果无效则无效
if(!$(#formD)。validation.congine('validate')){
返回false;
}
var vgrades = $(#grades)。val();
var vsubject = $(#subject)。val();
$ .post(sendInitialApplication.php,
{
成绩:vgrades,
主题:vsubject
/ *处理来自服务器的响应* /
function(response){
提醒(回复);
});
提醒(你在这里);
} ) ;
});
PHP代码sendInitialApplication.php如下
$ method = $ _SERVER ['REQUEST_METHOD'];
function connect(){
尝试{
$ dbConn = new PDO('mysql:host = localhost; dbname = student','root','root');
$ dbConn-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);
返回$ dbConn;
}
catch(PDOException $ e){
echo $ e-> getMessage();
}
}
/ *检查方法是否为HTTP POST * /
if(strtolower( $ method)=='post'){
$ grades = addslashes($ _ POST ['grade']);
$ subject = addslashes($ _ POST ['subject']);
尝试{
$ dbHandler = connect ();
$ dbHandler-> beginTransaction();
//保存获得不同成绩的各种科目
foreach($ subject为$ key => $ subject)
{
$ setIndexSubject ='CALL sp_sendIndexSubject(:vSubjectID ,:vGradeObtainedID)';
$ stmt_subject = $ dbHandler-> prepare($ setIndexSubject);
$ stmt_subject-> bindValue(':vSubjectID',$ subject);
$ stmt_subject-> bindValue(':vGradeObtainedID',$ grades [$ key]);
$ stmt_subject-> execute();
$ stmt_subject-> ; closeCursor();
}
$ dbHandler-> commit();
echo操作成功!!!!!!;
} catch(PDOException $ e){
$ dbHandler-> rollback();
die($ e-> getMessage());
}
}否则{
echo哎呀!确保方法是POST;
}
?>
<select name="grades[]" id="grades" class="validate[required]">
<option value="">--Select Grade--</option>
$sql="CALL sp_grabGrades()";
//Initiate and Call Stored Procedure Using PDO
$pdo = new PDOConfig();
$resultset = $pdo->query($sql);
foreach($resultset as $row)
{
?>
<option value=""> </option>
</select>
the form looks like this
English <--select-->
Biology <--select-->
Science <--select-->
the java script code is as follows;
$(document).ready(function(){
$("#submit").click(function(){
//if invalid do nothing
if(!$("#formD").validationEngine('validate')){
return false;
}
var vgrades = $("#grades").val();
var vsubject = $("#subject").val();
$.post("sendInitialApplication.php",
{
grades : vgrades,
subject : vsubject
/*Handles response from server*/
function(response){
alert(response);
});
alert("You are here");
});
});
the PHP code "sendInitialApplication.php" is as follows
$method = $_SERVER['REQUEST_METHOD'];
function connect(){
try{
$dbConn = new PDO('mysql:host=localhost; dbname=student', 'root', 'root');
$dbConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConn;
}
catch(PDOException $e){
echo $e->getMessage();
}
}
/*Checks if method is HTTP POST*/
if(strtolower($method) == 'post'){
$grades = addslashes($_POST['grades']);
$subjects = addslashes($_POST['subject']);
try {
$dbHandler = connect();
$dbHandler->beginTransaction();
//Saving Various subjects with distinct grade obtained
foreach($subjects as $key => $subject)
{
$setIndexSubject = 'CALL sp_sendIndexSubject(:vSubjectID,:vGradeObtainedID)';
$stmt_subject = $dbHandler->prepare($setIndexSubject);
$stmt_subject->bindValue(':vSubjectID', $subject);
$stmt_subject->bindValue(':vGradeObtainedID', $grades[$key]);
$stmt_subject->execute();
$stmt_subject->closeCursor();
}
$dbHandler->commit();
echo "The Operation was Successful!!!!!!";
} catch (PDOException $e) {
$dbHandler->rollback();
die($e->getMessage());
}
}else{
echo "Oops! Make sure Method is POST";
}
?>
推荐答案
sql =CALL sp_getSubjects( );
//使用PDO启动和调用存储过程
sql="CALL sp_getSubjects()";
//Initiate and Call Stored Procedure Using PDO
pdo = new PDOConfig();
pdo = new PDOConfig();
resultsSubject =
resultsSubject =
这篇关于使用java脚本将动态数组作为不同的变量发布的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!