【问题标题】:How to update a field on the form based on a select option如何根据选择选项更新表单上的字段
【发布时间】:2018-03-01 17:02:10
【问题描述】:

我有一个带有以下选择列表的 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() 运行。然后应该使用新比赛队长的电话号码重新加载表格。 但是,当我选择新的 Match Captain 时,会忽略 onchange 命令。 作为一个七十多岁的人,刚刚学习这门语言,我需要一些帮助! onchange 在 PHP 中有效吗?如果不是我应该使用什么?

【问题讨论】:

  • 您不能使用 onchange 直接调用 PHP 函数。 PHP 是服务器端代码,在任何 JS 运行之前执行。你需要让onchange调用一个JS函数,它可以进行AJAX调用来执行PHP代码并获取它返回的值。
  • #patrick3853 非常感谢

标签: php select onchange


【解决方案1】:

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

【讨论】:

  • #aCMoFoCord 感谢您的建议,我会调查路线。谢谢。
【解决方案2】:

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

这是一个例子:

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);
    }
  });

}
<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>

在 findTeleNo.php 文件中,您打印的 json 有 cname 和 Teleno。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多