我正在寻找一个简单的解决方案。该代码使用JQuery和PHP。我有两个表格——1选择一个学生,值是一个2位数的代码。另一个表单为该学生上传了一个文档,我需要第一个表单中的student_id才能与第二个表单一起提交。我看了看,没能找到一个有效的解决方案。只是在寻找一些简单的东西,如果有另一个帖子有效,我很乐意链接到它:)第一张表格:(我为格式问题道歉,它没有出来,我上学迟到了)
<form>
<select id="student_id" name="student_id" onChange="showInvoicesForStudent();">
<option value=''>Select Student</option>
<?php
$temp = mysql_query("select * from students order by lname");
while ($row = mysql_fetch_array($temp)) {
echo "<option value='" . $row['student_id'] . "'>" . $row['lname'] . ", " . $row['fname'] . "</option>";
}
echo "</select>";
$DB->close();
?>
</form>
第二个(我正试图将上面的student_id输入:
<form name="upload_invoice" method="post" action="upload_invoice.php" enctype="multipart/form-data" >
<input type="hidden" value="document.getElementById('student_id');" id="student_id"/>
如果两个表单都在同一页上,您可以将它们组合在一起,或者如果不可能,您可以使用jQuery将值从第一个表单添加到第二个表单。在这种情况下,您需要更改第二个窗体的ID,因为不允许在同一页面上有两个ID相同的HTML元素。(以下代码未经测试)
<script>
$(document).ready(function(){
$('#student_id').change(function() {
$('#student_id2').val($('#student_id).val());
});
});
</script>
如果表单在不同的页面上,则不需要使用jQuery,而是使用$_GET
或$_POST
(取决于表单的方法)。如果第二个表单不在第一个页面后面的页面上,则需要将student_id保存在cookie中(使用set cookie
),并使用($_COOKIE
)访问它
两种形式的意思是:两个单独的php文件?
-
解决方案(一个php文件):您放置在"value"处的小javascript代码并没有那么糟糕。但是a)它没有被识别为javaScript,b)它是错误的地方。您应该将它放在submit(onClick)按钮上。但是,如果两个表格都放在同一页上:为什么有两个单独的表格?如果您将student_id字段嵌入到第二个表单中,它将被提交。
-
解决方案(两个php文件):但是,如果第二个表单放在另一个php文件上,您将永远无法通过javascript访问第一个表单。因此,您应该使用php标记和"$_REQUEST['student_id']"来打印值。(请记住,要做好逃跑的准备,这样就不会有人闯入这种状态)。
function getCodeIdForStudent(){
var selectedBox=document.getElementById('student_id');
var selectedItem=selectedBox.value;
var hiddenText=document.getElementById('hidden_text_id');
hiddenText.value=selectedItem;
}
和CCD_ 5
**this code will give you the exact result**
//upload_invoice.php
print_r($_POST);
//index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" >
function showInvoicesForStudent(student_id)
{
document.getElementById('studentForm_id').value=student_id;
document.upload_invoice.submit();
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<select id="student_id" name="student_id" onChange="showInvoicesForStudent(this.value);" >
<option value=''>Select Student</option>
<?php
$temp = mysql_query("select * from students order by lname");
while ($row = mysql_fetch_array($temp)) {
echo "<option value='" . $row['student_id'] . "'>" . $row['fname'] . ", " . $row['lname'] . "</option>";
}
$DB->close();
?>
</select>
<form name="upload_invoice" method="post" action="upload_invoice.php" enctype="multipart/form-data" >
<input type="hidden" name="studentForm_id" id="studentForm_id"/>
</form>
</body>
</html>