echo "<a href=#> Delete </a>";
每當用戶點擊刪除時,都應該調用javascript函數進行確認。在Javascript函數的某個地方,php代碼應該用於刪除操作。我怎麼做?使用「一些PHP代碼到這裏」和「一些JavaScript函數()」;「讓我知道在哪裏放什麼。謝謝。在PHP塊內調用JavaScript,反之亦然
echo "<a href=#> Delete </a>";
每當用戶點擊刪除時,都應該調用javascript函數進行確認。在Javascript函數的某個地方,php代碼應該用於刪除操作。我怎麼做?使用「一些PHP代碼到這裏」和「一些JavaScript函數()」;「讓我知道在哪裏放什麼。謝謝。在PHP塊內調用JavaScript,反之亦然
JavaScript函數在客戶端執行(在瀏覽器中),PHP在服務器上執行。所以,JavaScript必須通過HTTP發送一條消息到服務器,由PHP來處理。 PHP將執行刪除。合理?
將消息發送到服務器的可能通過AJAX發送。
因此,HTTP協議有一種新的請求方法叫做'AJAX'?不要個人承擔,但...學習一點AJAX。 – Crozin 2010-02-03 19:02:51
我的意思是建議作者研究AJAX;似乎她可能不熟悉它。 (並且您的評論可能很容易被認爲是冒犯性的。) – Upperstage 2010-02-03 19:06:17
這是假設你使用jQuery ...
<a href='javascript:delete();'>Delete</a>
<script type="text/javascript">
function delete()
{
$.post("/your_script.php", {}, function(result) {
});
}
</script>
調用confirm()將用於確定$ .post()是否執行。您還需要取消點擊事件的默認操作。 – lincolnk 2010-02-03 19:07:59
PHP是一種服務器端技術,而JS是一個客戶端。他們不能互相交流 - 換句話說:他們是完全獨立的。
PHP只能是一個JS代碼輸出代碼:
echo 'document.getElementById("test").appendChild(document.createTextNode("' . $myVar . '");';
這是所有PHP可以做。 JavaScript也不能直接與PHP交互。您將不得不使用AJAX發送新的HTTP請求並處理返回的數據。
PHP是一種服務器端語言,因此您不能將PHP腳本輸出到瀏覽器,並期望它將使用PHP引擎進行解析。
您正在尋找的可能是AJAX,或者只是將用戶重定向到另一個頁面(使用不同的URL參數)或提交表單。 AJAX不需要從瀏覽器重新加載頁面,而另外兩種方法可以。
無論如何,你可以用「點擊」的方法執行JS腳本,當用戶點擊該元素,就會向執行:<a href="#" onclick="myFunc();">Delete</a>
但下面的方法看起來更好,並視爲一種理想的一個:
<a href="#" id="myId">Delete</a>
<script type="text/javascript">
document.getElementById("myId").onclick = myFunc;
</script>
由於涉及Ajax,我們假設您可以使用jQuery來處理XHR等。
<script>
$('#del').click(function(ev){
ev.preventDefault();
var del_conf=confirm('Are you sure you want to delete this item?');
if(del_conf){ $.post('delete.php',{'del':1,'id':123123},function(data){
alert(data.result);},'json');
}
});
</script>
<a id='del'>Delete</a>
好的,這是一些JS和HTML。現在,您需要一個單獨的PHP腳本來處理帖子。爲了與示例一起使用,這將保存在名爲'delete.php'的同一目錄中。
<?php
$del=(int)$_POST['del'];
$id=(int)$_POST['id']
if($del<1 || $id<1){ exit; }
else{
//do your DB stuff
}
if($db_success){
echo json_encode(array('result'=>'success'));
}
else{
echo json_encode(array('result'=>'error'));
}
這裏是使用jQuery另一個例子:
<div id="message"></div>
<a class="action" type="delete" rel="1234567">delete</a>
<script type="text/javascript">
$('a.action').click(function(){
var $this = $(this);
var processResponse = function(data){
//optionaly we can display server response
$('#message').html(data);
return;
};
var postPparams = {
module:'my_module_name',
action:$this.attr('type'),
record_id: $this.attr('rel')
};
$.post('/server.php',postPparams, processResponse);
});
</script>
你的問題建議你可能不知道服務器端之間的差別(執行什麼)和(執行的)客戶端。如果這是正確的,那麼我強烈建議您熟悉http協議的請求/響應概念,從而熟悉客戶端/服務器端的差異。 – 2010-02-03 19:15:09