PHP / Javascript更新输入字段

时间:2017-11-01 23:39:38

标签: javascript php jquery html

好的,所以不是一个大的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;
&#13;
&#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并不能很好地协同工作,但我希望有一个解决方案可以让我填写这些字段。

提前谢谢。

1 个答案:

答案 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。 如果有任何问题,请发表评论。

我很乐意帮助你搞清楚!