2016-04-07 13 views
1

現在のDBから何らかのテキストを返し、その行IDに基づいて別のフィールドを設定しようとしているforeachステートメントがあります。私はonclickの機能を持つボタンを作ったが、エコーされたボタンをクリックするたびに毎回同じIDが入力される。エコーされたクリックがエコーされた行のIDを返すようにするための推奨事項はありますか?あなたは、このたびに対処するための新しい関数を定義する必要がいけないPHPとJSでフォームの値を更新

$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>"; 



} 
+0

あなたは 'while'ループを必要としないでくださいと'それの間foreach'置きますか? – Chay22

+3

foreachループがchangeText()という名前の複数のJS関数を作成している場合は、同じ関数を何度も何度も再定義しています。関数は一度しか定義できません。 – larsAnders

+0

ああ、私がそれを手に入れて、それを入手したときに更新を掲載しています。 – Tyharo

答えて

1

は、あなたのonclickの呼び出しで関数に要素を渡すとIDを取得することができます。

あなたのjsスクリプト

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

であなたの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>"; 

} 
+0

私は裸の骨に私の投稿を編集しました。自分のコードであなたのソリューションをどのように実装するのか混乱しています。 – Tyharo

+0

ああ、あなたはそれをたくさん変えて待っています.... – David

+0

この 'echo(json_encode($ row [" announcementID "]))'には何がありますか? – David

関連する問題