2014-10-29 83 views
-1

我已經按鈕,讓我們這樣說:PHP JS AJAX功能內diffuculties

<button id= $id onClick="popup($id)">button</button> 

現在我想用Ajax功能使用

<script> 
function popup(id){ 
alert(" "); 
document.write(" "); 
} 
</script> 

所有我想要做的就是讓這個js函數執行php代碼。 我認爲把它放到document.write的alert中會很好,但是這段代碼看起來像下面這樣,而且我在引用和所有內容方面都有很大的問題。我真的不知道如何使這一切工作。 有人可以幫我把它匹配嗎?

echo "<div id='element_to_pop_up'> 
<a class='b-close'>zamknij</a>"; 
$messages = mysql_query('SELECT * FROM msg WHERE id = "'.$messageid.'" '); 
$fetchmessage = mysql_fetch_assoc($messages); 
echo $fetchmessage['message']; 
echo "</div>"; 
+0

警報只能有簡單的測試。做這樣的事情。 <?php $ messages = mysql_query('SELECT * FROM msg WHERE id =「'。$ messageid。'''); $ fetchmessage = mysql_fetch_assoc($ messages);?> cforcloud 2014-10-29 18:41:26

回答

-1

PHP在服務器上運行。 JS在瀏覽器中運行。你不會直接從另一個運行一個。

您可以在服務器上運行PHP,以迴應將在瀏覽器中作爲JS運行的字符串。

您可以運行使用AJAX的JS來回調服務器以在服務器上運行PHP。

您無法在瀏覽器中運行PHP。

您不能在服務器上運行瀏覽器JS(爲了討論的目的,忽略所有可能的方式)。

3

PHP在服務器端進行處理。所以你不能運行PHP代碼客戶端。

我要做的是(這裏用jQuery完成,你可以用其他框架來完成)在你的按鈕上設置一個data-id =「」屬性,並使用從PHP回顯的ID。然後當你點擊按鈕時,你可以通過AJAX調用一個PHP腳本來執行某些操作。像:

HTML:

<button class="clickme" data-id="<?=$row['id'];?>">button</button> 

jQuery的

$('.clickme').click(function(){ 
    $.post("test.php", { msgId: $(this).data('id') }).done(function(data) { 
     alert("Data loaded: " + data); 
    }); 
}); 
0

你需要的東西是這樣的:

HTML

<button class="clickButton" data-id="<?php echo $id; ?>" id=""<?php echo $id; ?>">button</button> 

jQuery的

$(function() { 
    $('.clickButton').click(function() { 
     var id = $(this).data('id'); 
     $.ajax({ 
      type: "POST", 
      url: "ajax.php", 
      data: {id: id} 
      success: function(data) { 
       alert(data); 
      } 
     }); 
    }); 
}); 

ajax.php

//Set up a mysqli connection here 
echo "<div id='element_to_pop_up'><a class='b-close'>zamknij</a>"; 
$result = mysqli_query($link, "SELECT * FROM msg WHERE id = '" . mysqli_real_escape_string($link, $_POST["id"]) . "'"); 
$fetchmessage = mysqli_fetch_assoc($result); 
echo $fetchmessage['message']; 
echo "</div>"; 
  • 避免到MySQL注入

  • 使用的mysqli或PDO,而不是MySQL的函數,因爲MySQL的功能已被棄用。