如何基于选择选项更新表单上的字段

时间:2018-03-01 17:02:10

标签: php select onchange

我有一个带有以下选择列表的PHP表单;

<select id ="MatchCaptain" name="MatchCaptain" onchange="findTeleNo(this.value)"
                        <?php 
                            $MC = $_SESSION["MatchCapt"];
                            player_load($MC);
                        ?>
                        >
                </select>

我还有一个文本字段;

Telephone Number:&nbsp;</b> <?php echo $_SESSION["TeleNo"]; ?></p>

onchange命令调用的PHP函数是;

    function findTeleNo($MatchCaptain){
  $db_handle = mysqli_connect(DB_SERVER, DB_USER, DB_PASS );
    $database = "matchmanagementDB";
    $db_found = mysqli_select_db($db_handle, $database);
    if ($db_found) {
    $SQL = "SELECT * FROM `playerstb` ORDER BY `Surname` ASC, `FirstName` ASC";
    $result = mysqli_query($db_handle, $SQL); 
    $ufullName = split_name($MatchCaptain);
    while ( $db_field = mysqli_fetch_assoc($result) ) {
        $uName = $db_field['FirstName'];
        $uName = trim($uName);
        $Surname = $db_field['Surname'];
        $Surname = trim($Surname);
        $fullName = $uName." ".$Surname;
        if ($fullName == $ufullName )
        {
            $_SESSION["TeleNo"] = $db_field['TeleNo'];
            include "Match_sort.php";
            break;
        }
        }
}
}

我想要做的是在SELECT下拉列表中更改Match Captains名称然后我想要运行FUNCTION findTeleNo()。然后应该使用新比赛队长的电话号码重新加载表格。 但是,当我选择一个新的匹配队长时,忽略onchange命令。 作为一名七十多岁的人,只要学习这门语言,我需要一些帮助! onchange是否适用于PHP?如果不是我应该使用什么?

2 个答案:

答案 0 :(得分:1)

onchange事件是一个javascript事件,它不能直接调用你的php函数。您可以创建一个javascript函数,当选择值更改时将调用该函数,然后这可以对php文件发出xhr(Ajax)请求,该文件将执行数据库查询并返回您需要的内容。然后,您可以使用javascript更新页面。

答案 1 :(得分:0)

PHP是服务器端语言,您需要使用javascript。

这是一个例子:

&#13;
&#13;
function findTeleNo (value) {
  console.log(value);
  $.ajax({
    url: 'findTeleNo.php',
    data: {
      c_name: value
    },
    success: function (response) {
      $('#cname').text(response.cname);
      $('#teleno').text(response.teleno);
    }
  });

}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <select id ="MatchCaptain" name="MatchCaptain" onchange="findTeleNo(this.value)">
      <option>choose one</option>
      <option value="A1">A1</option>
      <option value="B2">B2</option>
      <option value="C3">C3</option>
  </select>
<div>

<div>
Captain Name is: <span id="cname">empty</span>
<div>
<div>
TeleNo is: <span id="teleno">empty</span>
<div>
&#13;
&#13;
&#13;

并在文件findTeleNo.php中打印json有cname和teleno。