不幸的是,JavaScript无法按预期运行。我想达到onclick,即在textarea中该值已更改。同时,还应该在输入中更改该值。
<textarea class="input" style="width:100%;font-size:12pt;font-family: ArialMT, Verdana;font-weight: bold;height:100px;color:black" name="adresse" readonly="readonly" id="street"></textarea>
<input style="width:130px;text-align: left" class="input" type="text" name="kundennr" id="kundennr" value="10000">
<a href="#openModal">Kunden</a>
<div id='openModal' class='modalDialog'>
<div>
<a href='#close' title='Close' class='close'>X</a>
<?php
$sql = "SELECT * FROM `kunde` ORDER BY `kundennummer` ASC";
foreach ($dbh->query($sql) as $nav) {
$address = $nav['adresse'];
$name = $nav['kundennummer'];
echo " <a>$address</a>
<a> | Kundennr: </a><a href='#' onclick='changeit(this);'>$name</a><br>";
}
?>
</div>
</div>
<script>function changeit(el) {
var inhalt = el.text;
var db_address = '<?php echo $address; ?>';
document.getElementById('kundennr').value=inhalt;
document.getElementById('street').value =db_address;
}
</script>
更新抱歉,我忘记了模式框。
答案 0 :(得分:1)
您的函数changeit(el)仅使用最后一个$ address生成一次;
通常,您可以在foreach语句中包含函数定义,并生成此函数的n版本,但这是一种可怕的方法。
您应该将地址数组发送给javascript并使用它
<code>
var js_addresses = json_encode($addresses);
</code>
答案 1 :(得分:0)
首先,我删除了您的PHP,但保留了变量名$ address和$ name。 如果我正确阅读了您的代码,则希望将$ address中的值放入textarea中,并将输入内容放入$ name的值中。
您需要稍微修改一下代码。在您提供的链接中读取$ address的值,方法是在“地址”下面的示例中为其指定一个ID,然后访问它的innerHTML。仅在将PHP变量设置在某个位置的情况下,您才能直接访问它们。 1.将一个id属性添加到地址链接。 2.用下面的JS代码替换您的JS代码 3.一切正常。
function changeit(el) {
var inhalt = el.text;
var db_address = document.getElementById("address").innerHTML;
document.getElementById('kundennr').value=inhalt;
document.getElementById('street').value =db_address;
}
<textarea class="input" style="width:100%;font-size:12pt;font-family: ArialMT, Verdana;font-weight: bold;height:100px;color:black" name="adresse" readonly="readonly" id="street"></textarea>
<input style="width:130px;text-align: left" class="input" type="text" name="kundennr" id="kundennr" value="10000">
<a id="address">$address</a>
<a> | Kundennr: </a><a href='#' onclick='changeit(this);'>$name</a><br>