PHP ile birlikte JavaScript uyarı kutuları

8 Cevap php
echo "<td><a href='delete.php?id=$row[id]&&category=$a' onclick='return confirm(\'are you sure you wish to delete this record\');'>delete</a></td>";

Yukarıda ben kullanmaya çalışıyorum kodudur. Hiçbir şey yok ve ben 'doğru' JavaScript yöntemlerini kullanabilirsiniz nasıl göremiyorum her zaman. Sebebi nedir?

8 Cevap

GET ve POST kullanmak için zaman (http://www.w3.org/2001/tag/doc/whenToUseGet.html#checklist) ne zaman kullanılacağı konusunda kurallara bir göz atın - Ayrıca durumunu değiştirmek için GET yöntemlerini kullanmak kötü bir fikirdir

Ben $ row [id] sizin echo deyiminde doğru değerlendirmek değildir düşünüyorum. Bu deneyin:

echo "<td><a href='delete.php?id={$row[id]}&&category=$a'...

Dolambaçlı parantez unutmayın.

Ama BU okumak çok kolaydır:

?><td><a href="delete.php?id=<?=$row[id];?>&amp;category=<?=$a;?>" onclick="return confirm('are you sure you wish to delete this record');">delete</a></td><?

Bir kenara, onay işleme için js bir işlev eklemek:

function confirm_delete() {
    return confirm('Are you sure you want to delete this record?');
}

Sonra onclick yöntemi sadece olabilir return confirm_delete().

echo "<td><a href='delete.php?id=$row[id]&&category=$a' onclick='return confirm(&quot;are you sure you wish to delete this record&quot;);'>delete</a></td>";

Sizin yararınıza Firefox'un HTML sözdizimi vurgulamasını kullanın. :-)

Sadece bir öneri, bir çerçeve kullanıyorsunuz?

Ben o zaman sadece HTML bu script dahil MooTools kullanmak

confirm_delete.js

window.addEvent('domready', function(){
    $$('a.confirm_delete').each(function(item, index){
    	item.addEvent('click', function(){
    		var confirm_result = confirm('Sure you want to delete');
    		if(confirm_result){
    			this.setProperty('href', this.getProperty('href') + '&confirm');
    			return true;
    		}else{
    			return false;
    		}
    	});		
    });
});

Bütün yaptığı class = "confirm_delete" ile herhangi bir "a" etiketleri bulmak ve komut olarak aynı kodu verdiği ama ben daha kolay kullanmak bulabilirsiniz. JavaScript kapalıysa eğer hala bir onay istemi ile bir ekrana onları göndermek böylece aynı zamanda adresinize bir onay değişken ekler.

Siz mümkün olduğunca HTML sizin JavaScript ayırmak için çalışmalısınız. Vanilya HTML başlangıçta ve daha sonra daha sonra bağlantıya olay eklemek çıktı.

printf('<td><a id="deleteLink" href="delete.php?id=%d&amp;category=%s">Delete</a></td>', $row["id"], $a);

Ve sonra sayfadaki yere bazı JavaScript kodu:

document.getElementById('deleteLink').onclick = function() {
    return confirm("Are you sure you wish to delete?");
};

Muhtemelen birden fazla satır, kendi silme bağlantı ile her ile bir tablo var gibi örnekten ancak görünüyor. Bu ve üzerinde confirm(...) metin çıktısı olmayacak çünkü, daha çekici bu tarzı kullanarak yapar.

Bu durumda, açıktır ki linke bir id kullanamazsınız, bu yüzden bir sınıf kullanmak için muhtemelen daha iyi. <a class="deleteLink" ...

Eğer bu jQuery gibi bir JavaScript kütüphanesini kullanarak olsaydı, bu çok kolaydır:

$('.deleteLink').click(function() {
    return confirm("...");
});

Başka bir çözüm:

echo '<td><a href="delete.php?id=' . $row[id] . '&category=' . $a . '" onclick="return confirm(\'are you sure you wish to delete this record?\');'>delete</a></td>';

Ben tek tırnak ve bunun tersi çift tırnak değişti. PHP ile gerekli değerlendirme yok yani ben o değişkenleri concatinated.

Ayrıca, onClick üzerinde getiri aslında kullanıcının tıkladığında "tıklanan" olmaktan linki duracaktır emin değilim.

Ve yankı şeyi kullanmakta ısrar ederseniz:

echo "<td><a href='delete.php?id=$row[id]&&category=$a' onclick='return confirm(\\'are you sure you wish to delete this record\\');'>delete</a></td>";

- Öncelemeli php-interpretator itibaren tedavi edilir - çünkü!)

Burada bir şey aynı tip için ne kullanın.

I do not echo/print it, I will put the html between ?> html

?> <td><a href="?mode=upd&id=<?= $row[id] ?>&table=<?= $table ?>">Upd</a> / <a href="?mode=del&id=<?= $row[id] ?>&table=<?= $table ?>" onclick="return confirm('Are you sure you want to delete?')">Del</a></td> <?php