看来我正面临一个共同的问题,但我没有设法在我的代码上解决它。
我想做什么: 我已经创建了一个数据库,我目前正在使用一个简单的UI来更新它。所以,我用
代码(简化一点):
<html>
<body>
<form method="post">
<select class="dropdown" id="dropdown_id" onChange='fillFun(this.value)' >
<option disabled selected value style="display:none"> -- select an option -- </option>
<?php
//stuff pdo connection
$pdo = new PDO("mysql:host=$servername;dbname=myDatabase", $user, $password);
try
{
$result = $pdo->query("SELECT * FROM dbTable");
foreach($result as $row)
{
echo '<option value="'.$row.'"';
echo '>'. $row['last_name'].' '. $row['first_name'].'</option>'."\n";
}
}
catch(PDOException $e) { echo 'No Results'; }
?>
</select >
</form>
<form id="forms" action="results.php" method="post">
Last Name: <input type="text" id="last_name" /><br><br>
First Name: <input type="text" id="first_name" /><br><br>
<input type="submit" />
</form>
<script>
function fillFun(fill)
{
document.getElementById('last_name').value = fill[1];
document.getElementById('first_name').value = fill[2];
}
</script>
<body>
问题:
this.value = "Array"
经过一番研究后,我发现了一些类似问题的问题。(对于instace this one)
问题是我不能(或者不知道如何,确切地说)应用给定的解决方案print_r()
或var_dump()
,因为我正在回应一个选项值。解决类似问题的另一种方法是使用json_encode()
但在更改
onChange='fillFun(this.value)'
与
onChange='fillFun(json_encode(this.value))'
问题没有解决。相反,现在似乎fill
参数为null。(更改时没有任何反应)。
我在这里缺少什么?谢谢。
答案 0 :(得分:0)
您可以将this.value
对象传递给event
函数,而不是引用fillFunc
,而是通过event.target.value
获取值。
因此fillFunc
将更新为:
fillFunc(event) {
document.getElementById('last_name').value = event.target.value[1];
document.getElementById('first_name').value = event.target.value[2];
}
将事件传递给您的onchange
处理程序。
<select onchange="filFunc(event)"></select>