2016-04-07 25 views
1

Geçerli DB'den bazı metinleri döndüren foreach ifadem var ve bu satır kimliğine göre başka bir alanı doldurmaya çalışıyorum. onclick işlevli bir düğme yaptım, ancak her zaman yankı düğmesine tıkladığımda her defasında aynı kimlikte dolar. Yankılanan tıklamanın bu yankılanan satırın kimliğini döndürmesi için herhangi bir öneriniz var mı? Bu her zaman başa yeni bir işlev tanımlamak gerek yokPHP ve JS ile form değerini güncelle

$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

bir 'while' döngü ihtiyaç ve koyun' bunun arasına foreach' musunuz? – Chay22

+3

Foreach döngüsünüz, tümü changeText() olarak adlandırılan birden çok JS işlevi oluşturuyorsa, aynı işlevi tekrar tekrar tanımlıyorsunuz demektir. Fonksiyonu sadece bir kez tanımlayabilirsiniz. – larsAnders

+0

Ahh Anlıyorum, üzerinde çalışıyorum ve aldığımda bir güncelleme yayınladım. – Tyharo

cevap

1

, kendi onclick çağrısında fonksiyonu içine eleman geçmesi ve kimliği alabilirsiniz. senin js komut

<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

Gönderiyi çıplak kemiklere kadar düzenledim. Çözümünüzü benim kodumla nasıl uygulayacağım konusunda kafam karıştı. – Tyharo

+0

ah bekleyiniz çok değişti .... – David

+0

bu nedir? Echo (json_encode ($ row ["announcementID"])) '? – David