Javascript 使用PHP和JS更新表单值

Javascript 使用PHP和JS更新表单值,javascript,php,Javascript,Php,我有一个foreach语句,它从当前数据库返回一些文本,我正试图根据该行ID填充另一个字段。我制作了一个带有onclick函数的按钮,但每次单击回显按钮时,它都会填充相同的ID。是否有任何建议可以使回显单击返回该回显行的ID $a = 0; foreach ($announcement as $row) { //Displays title, startDate, endDate from announcement table from database

我有一个
foreach
语句,它从当前数据库返回一些文本,我正试图根据该行ID填充另一个字段。我制作了一个带有
onclick
函数的按钮,但每次单击回显按钮时,它都会填充相同的ID。是否有任何建议可以使回显单击返回该回显行的ID

$a = 0;

                    foreach ($announcement as $row) { //Displays title, startDate, endDate from announcement table from database 

                    $x[$a] = $row["announcementID"];
                    ?>
                    <script type="text/javascript">
                        function changeText(value) {
                             document.getElementById('title').value = <?php echo(json_encode($row["announcementID"])); ?> ;
                        }
                    </script>
                    <?php
                    //echo "<h2 style=width:auto;padding:8px;margin-top:-30px;font-size:18px;><a style=text-decoration:none;color:#c4572f; >".$row["title"]."</a></h2><br>";
                    //echo "<p style=padding-top:10px;>".$row["content"]."</p><br>";
                    //echo "<p style=font-size:10px;>Posted: ".$row["startDate"]."</p><br>";
                    echo "<input type=button onclick=changeText".$x[$a]."() value=Edit>";
                    echo "<p style=font-size:10px;>Posted: ".$x[$a]."</p> <br />";
                    //echo "<h5 style=line-height:2px;margin-top:-15px;><p>_____________________________________</p></h5><br>";



}
$a=0;
foreach($announcement as$row){//从数据库的公告表中显示标题、开始日期和结束日期
$x[$a]=$row[“公告ID”];
?>
函数changeText(值){
document.getElementById('title')。value=;
}

您不需要每次都定义一个新函数来处理这个问题,您可以在onclick调用中将元素传递到函数中并获取id

在js脚本中

 <script>
  function changeText(elem) {
      document.getElementById('title').value = elem.id;
  }
 </script>

函数changeText(elem){
document.getElementById('title')。value=elem.id;
}
你的php

foreach ($announcement as $row) { //Displays title, startDate, endDate from announcement table from database 

    $x[$a] = $row["announcementID"];
    //echo "<h2 style=width:auto;padding:8px;margin-top:-30px;font-size:18px;><a style=text-decoration:none;color:#c4572f; >".$row["title"]."</a></h2><br>";
    //echo "<p style=padding-top:10px;>".$row["content"]."</p><br>";
    //echo "<p style=font-size:10px;>Posted: ".$row["startDate"]."</p><br>";
    echo '<input id="'.$x[$a].'" type=button onclick="changeText(this)" value="Edit">';
    echo "<p style=font-size:10px;>Posted: ".$x[$a]."</p> <br />";
    //echo "<h5 style=line-height:2px;margin-top:-15px;><p>_____________________________________</p></h5><br>";

}
foreach($announcement as$row){//从数据库的公告表中显示标题、开始日期和结束日期
$x[$a]=$row[“公告ID”];
//回显“.$row[“title”]。
”; //echo“

”$row[“content”]。“


”; //echo“

发布:“.$row[“startDate”]。”


”; 回声'; echo“

发布:“.x[$a]”“


”; //回声“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu


”; }
while
循环并将
foreach
放在它之间,您不需要
吗?如果您的foreach循环正在创建多个名为changeText()的JS函数,然后你一次又一次地重新定义同一个函数。你只能定义一次函数。啊,我明白了,我会处理它,并在得到它后发布更新。我把我的帖子编辑得一干二净。我对如何用我的代码实现你的解决方案感到困惑。这
echo(json_encode($row[“announcementID”])中有什么内容
?这应该会回显按钮所附行的DB中存储的id。好的,如上所述,只是为了澄清,脚本标记中的代码添加一次……它将处理元素上的onclick事件。我将整理一点,也很完美!工作得很好,正是我所寻找的。