PHP ile birlikte bir href (html) etiketi

3 Cevap php

ben denedim:

<?php include("delete.php") ?>
<?php 

   ....
   ....
   ....

if($result=mysql_query($sql))
                {

                    echo "<table><th>Id</th><th>Name</th><th>Description</th><th>Unit Price</th>";
                    while($row = mysql_fetch_array($result))
                    {
                        echo "<tr><td>".$row['Id']."</td><td>".$row['Name']."</td><td>".$row['Description']."</td><td>".$row['UnitPrice']."</td> 
                        <td><a href='delproduct($row[Id])' onclick = 'return MsgOkCancel()'>Delete</a></td></tr>";
                        echo "<br/>";
                    }
                }
?>

aşağıdaki javascript aynı sayfada ise:

<script type="text/javascript" language="javascript">
            function MsgOkCancel() {
                                    if (confirm("Are You Sure You Want to Delete?"))
                                     { return true }
                                    else
                                    {return false}
                                   }
        </script> 

where delproduct is a javascript function in delete.php written like:

<script type="javascript">
function delproduct(Id)
{
    alert('Id '+ Id);
}
<script>

** after ** Bir okcancel ileti kutusunu silme tıklayarak yapısını soran görünür

** but ** 'Tamam' it delproduct işlevinin içine ifadeleri çalıştırmak gerekir tıkladıktan sonra ama öyle değil

bu gibi hata veriyor:

Bulunamadı Object: İstenen URL bu sunucuda bulunamadı.

sorun ne olurdu?

pls yardım

teşekkürler

3 Cevap

Bir URI (örneğin {[) (0]} gibi) bir düzeni olmadan bir göreli tanım olarak kabul edilir.

Sen javascript: (bookmarklets oluşturma dışında başka bir şey için asla kullanılmamalıdır olan) arıyor gibi görünüyor.

Ne yapıyor edilmelidir çizgisinde bir şeydir:

onclick="if (MsgOkCancel()) { delproduct($row[Id]); return false; } else {  return false; }"

Ancak, something that works href olması gerekir, ancak bu sunucu üzerinde önemli bir değişiklik yapıyor gibi görünüyor, çünkü bunu bir bağlantı yanlış araçtır, POST GET değil kullanıyor olmalıdır.

Ne muhtemelen sahip olmalıdır:

<form action="/delete" method="post" onsubmit="return delete(this);">
    <input type="hidden" name="id" value="<?php echo htmlspecialchars($row[Id]); ?>">
    <input type="submit" value="Delete">
</form>

Kombine ile:

function delete(form) {
    if (confirm("Are You Sure You Want to Delete?")) {
        delproduct(form.elements.id.value);
    }
    return false;
}

Daha da iyisi, onsubmit niteliğin kurtulmak ve JavaScript kullanarak olayı atayın olsun.

Ben farklı bir kurulum gerekir düşünüyorum.

Her şeyden önce, bir href niteliğinde javascript işlevleri çağırmak için gidiyoruz eğer, javascript: gibi ile başa eklemek gerekir böylece href="javascript:delproduct(...)". Ama bir href niteliği çağırıyor javascript tavsiye edilmez. Bu özellik URL'ler için tasarlanmıştır.

Ben messagebox görüntüler ve kullanıcı eylem dayalı, delproduct işlevini çağıran bir işlev oluşturmak için size tavsiye ediyorum. Gibi bir şey:

function confirmDelProduct( id )
{
    if( msgOkCancel() )
    {
        delproduct( id );
    }
    // return false is meant to stop the href url from being called
    return false;
}

Ve html:

<a href="#" onclick="return confirmDelProduct(' . $row[ 'id' ] . ')"> ... etc

What about this one: PHP:

<a href="javascript:void(0);" onclick=\"delproduct({$row[Id]})\">

JS:

function delproduct(Id){
    if(MsgOkCancel()) alert('Id '+ Id);
}