使用java脚本将动态数组作为不同的变量发布 [英] posting dynamic arrays as distinct variables using java script

查看:86
本文介绍了使用java脚本将动态数组作为不同的变量发布的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图动态添加主题和获得的成绩的字段,但是在使用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)
{
?>

:< input name =subject []type =hiddenvalue =/>
:<input name="subject[]" type="hidden" value="" />

< 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆