我是网络开发的新手。可能这是一个愚蠢的问题。但问题是我需要一个答案。我有在php标签内添加div标签的经验。但我的问题是我们可以在这个div标签上添加onclick功能或任何其他功能。
我有类似的代码
<?php
// Connects to your Database
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("selfie") or die(mysql_error()) ;
//Retrieves data from MySQL
$data1 = mysql_query("SELECT * FROM image_upload INNER JOIN user_table
ON image_upload.user_id=user_table.user_id ORDER BY timestamp DESC; ") or die(mysql_error());
//Puts it into an array
while($info = mysql_fetch_array($data1)){
//Outputs the image and other data
Echo
'<div class="test">' .
'<div class="username">'.$info['user_name'].'</div>'.
'<div class="imagedisplay">' .'<img src="uploads/'.$info['image'].'" width="230px" height=auto border="1px solid #"
>'. '</div>'.
'<div class="horizontal">'. '</div>'.
'<div class="desc">'.$info['description'].'</div>'.
'<div class="horizontal">'. '</div>'.
'<a class="like" id="press_me">'."Press Me".'</a>'.
'</div>'.
'</div>';
}
?>
使用此代码我可以显示我想要的东西。 在上面的代码中,我有一个id =&#34; press_me&#34;
的标签当有人点击该字段时,我编写javascript来增加我的数据库的like_count列的值。但它的努力工作。我无法理解错误..任何人都可以帮助我。
这是我的剧本
<script>
$(function (){
$('#press_me').click(function(){
var request = $.ajax({
type: "POST",
url: "increment.php"
});
request.done(function() {
alert('Success');
return;
});
request.fail(function(jqXHR, textStatus) {
alert( "Request failed: " + textStatus );
});
});
});
</script>
这是我的increment.php
<?php
$host = "localhost:3306"; // Host name
$username = "root"; // Mysql username
$password = ""; // Mysql password
$db_name = "selfie"; // Database name
// Connect to server and select databse.
mysql_connect($host, $username, $password) or die("cannot connect");
mysql_select_db($db_name) or die("cannot select DB");
// Increasing the current value with 1
mysql_query("UPDATE image_upload SET like_count = (like_count + 1)");
?>
答案 0 :(得分:0)
<?php
和<div>
标记是不同的问题。 php标签的处理器(通常)在服务器上运行,并不关心html div标签。 div标签是(通常)由客户端html处理器(在您的浏览器中)解释器,并且(通常)甚至没有得到<?php
标签及其相关内容 - 因为它已经被处理在服务器上,只有该脚本的输出发送到客户端。对于<?php ...?>
标签之外的内容也是如此,因为php处理器会将这些标签之外的任何内容视为&#34; as-is&#34;脚本的输出。
因此,您的问题的答案可以为这个div标签添加onclick功能或任何其他功能[?]&#34;是:是的,根据html / dom规范,无论是否已经使用过服务器php。只需使用&#34;显示源代码&#34;浏览器中的按钮,然后查看此代码。 那就是你的浏览器,处理html,javascript,dom,......东西,解释的代码片段。
答案 1 :(得分:0)
如果您只想增加一个计数器,可以删除id="press-me"
并将JS更改为
$(function (){
$('.like').click(function(){
var request = $.ajax({
type: "POST",
url: "increment.php"
});
...
});
将使用like
类检测所有div的点击事件
如果您想为每个图像增加一个不同的计数器,您也可以使用该类作为事件,并在您的请求中添加一个参数(例如var id = $(this).attr("idImg");
)。
答案 2 :(得分:0)
这就是我经常在JQuery中使用函数调用成功或错误的方法。
$(document).ready(function(){
$('#press_me').click(function(){
$.ajax({
type:"POST",
url:"increment.php",
success:function(textStatus) {
alert('Success');
},
error:function(jqXHR,textStatus){
alert("Request failed: " + textStatus);
}
});
});
});