试图使用php和mysql进行ajax调用

时间:2011-11-16 07:56:34

标签: php javascript mysql html ajax

我为我的ajax调用设置了以下设置,但是当我点击星号时它不起作用(这是星级),虽然如果我直接访问ajax.php它会插入,但是ajax调用不是发生。

php文件中的html

   echo '<table>
     <tr>
         <td style="padding:10px;">
         <input type="hidden" name="userID" value="'.$user_id.'">
         <span style="font-size: 20px; vertical-align:top;">Comments</span>
         </td>
         <td style="padding:10px;">
         <textarea name="comments" cols="60" rows="2"></textarea>
         </td>
         <td>
         <div>
          <input name="star1000" value "1" type="radio" class="star"/>
          <input name="star1000" value="2" type="radio" class="star"/>
          <input name="star1000" value="3" type="radio" class="star"/>
          <input name="star1000" value="4" type="radio" class="star"/>
          <input name="star1000" value="5" type="radio" class="star"/> 
          </div>
         </td>
    <tr>
    </table>';

JS - 用于发送值

   <script>
    $('.star').rating({
        callback: function(value, link) {
          var name = $(this).attr('name');
          var userID = $(this).closest('td').find('input[name="userID"]').val();
          var comments = $(this).closest('td').find('textarea[name="comments"]').val();
          $.ajax({
            url: "http://localhost/mywebsite/ajax.php",
            type: "POST",
            data: {
              name: name,
              value: value,
              userID: userID,
              comments: comments
            },
            cache: false,
            success: function(response) {
              try {
                console.log(response);
              } catch (err) {
                alert(response);
              }
            }
          });
        }
      });
    </script>

我的ajax.php位于http://localhost/mywebsite/ajax.php

<?php

      extract($_POST);

    $rate_val = $_POST['value'];
    $user_id = $_POST['userID'];
    $comments =  $_POST['comments'];

    $insert_q = "INSERT INTO ratings (rate_comments, rate_num, option_id, rate_date,user_id) 
                 values  ('$comments','$rate_val','1',now(),'$user_id')";

     include 'opendbconn.php';

              if(!($result = mysql_query($insert_q, $database)))
                {
                    print("Could not execute query!<br/>");
                    die(mysql_error()."</div>
               </div>            
                                 </body>
                                </html>");
                }

     include 'closedbcon.php';
?>

1 个答案:

答案 0 :(得分:0)

你必须使用你的函数.rating()绑定事件click,这样javascript就知道当点击“。star”时它必须执行函数.r​​ating()。

你可以这样做:

$(document).ready(function(){
          //other javascript code...

          $('.star').bind('click',function(){
                      //your rating function   
                });
        });