php标签内的<div> </div>

时间:2014-10-30 11:18:08

标签: javascript php jquery

我是网络开发的新手。可能这是一个愚蠢的问题。但问题是我需要一个答案。我有在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)");
 ?>

3 个答案:

答案 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);
                               }
        });
        });
});