好的,所以不是一个大的HTML或Javascript人。但我正在尽力而为。
我正在为Marine Cadets Explorers Post创建一个项目,为他们创建一个在线数据库,帮助他们管理自己的会员资格和其他功能。在输入他们的会员记录时,他们将有多个家庭,这些家庭将有几个孩子,所以他们不想重新输入他们的父母记录。我想创建一个由SQL数据库查找(我做过)填充的下拉框,然后,如果他们从该列表中选择父项,则表格将填充,保存该条目。
我只提供了一个剪辑的HTML,因为表单有超过50个字段,例如,我只需要显示一个。
所以HTML就在下面。
<form name="YouthApp" class="form-application" method="post" id="application-form">
<div style="height:0.20in; left:1.75in; overflow:hidden; padding:2px; position:absolute; top:4.10in; width:1.48in; ">
<select name="selSupp" style="width:1.46in;">
<option value="">Existing Supporters</option>
<?php makeSuppDropdown() ?>
</select>
<div style="height:26px; left:0.36in; overflow:hidden; padding:2px; position:absolute; top:4.52in; width:353px; ">
<input style="height:0.20in; width:3.64in; " name="SuppFirst" required value="<?php if(isset($_POST['SuppFirst'])){ echo $_POST['SuppFirst']; } ?>" maxlength="20" type="text" placeholder="First Name" >
</div>
</div>
</form>
&#13;
它调用填充下拉列表的PHP函数:
function makeSuppDropdown() {
include("dbconnect.php");
$sql = "SELECT SupporterId, ".
"CONCAT(LastName, ',', FirstName,' ',MidName,' ',trim(Suffix)) as 'SuppLookup' ".
"FROM tblsupporters ".
"ORDER BY LastName, FirstName, MidName, Suffix";
$sql_result = mysqli_query($conn,$sql);
$field= mysqli_fetch_fields($sql_result);
while ($row = mysqli_fetch_array($sql_result)) {
echo ' <option value="'.$row['SupporterId'].'" >'.$row['SuppLookup'].'</option>'.chr(10);
}
}
该功能提供了以下输出:
<select name="selSupp" style="width:1.46in;">
<option value="">Existing Supporters</option>
<option value="32517-02" >Truxton,Karla Andrianne </option>
<option value="32517-01" >Truxton,Tommie Lee </option>
</select>
如果用户选择父支持者,那么我想开始填写输入字段。这就是我遇到问题的地方。
这是我正在使用的PHP / Javacode无法正常工作:
<?php
if (isset($_POST['selSupp'])) {
?>
<script type="text/javascript">
document.getElementById("SuppFirst").value = "Tommie";
</script>
<?php
} ?>
现在我知道PHP和Javascript并不能很好地协同工作,但我希望有一个解决方案可以让我填写这些字段。
提前谢谢。
答案 0 :(得分:0)
我真的不明白你的问题,但据我所知,你希望用户在选择父母的信息后,会出现一个包含父母信息和额外字段的表格。 如果是这样,我建议创建一个提交按钮,因为我不确定是否可以自行提交下拉选项:
if ($_POST['sbm']) { //if submit button is pressed
$option = mysqli_real_escape_string($conn, $_POST['select-name']);
//Get option from the users
if ($option == '') { //If $option == '' means if there is no value
header("Location: this_file.php?error=notselected"); //Redirect to the desired page
exit();
}
else {
header("Location: this_file.php?error=noerror");
exit();
}
}
在所需的页面(包含选择表单的页面)中,添加:
if (isset($_GET['error'] && !empty($_GET['error'])) { //Check if error parameter exists
$error = $_GET['error'];
//Get the error
switch ($error) {
case "notselected": echo "<b style=\"color:red;\">Error!</b>"; break;
case "noerror": echo "<script>$(document).ready(function(){$('input-wanted-to-show').show();});</script>"; break; //Print out the script part that you need or show the hidden input. After this php code, please go to html and add desired input fields.
}
}
总的来说,我知道你要提交那个选择表单并添加javascript如果已经完成,所以我建议添加一个提交按钮,当选项有效时添加参数,然后使用$ _GET来检查参数,打印出来approriate标签。
如果您仍想保留选择值,请使用AJAX。 如果有任何问题,请发表评论。
我很乐意帮助你搞清楚!