评级插件将值传递给AJAX

时间:2012-01-14 22:51:30

标签: php ajax rating

我正在尝试为AJAX中的两个隐藏字段获取价值,但某种程度上并没有发生。我正在使用http://www.wbotelhos.com/raty/评级插件。

该值未进入AJAX

<head>
   <title></title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <script type="text/javascript" src="js/jquery.min.js"></script>
   <script type="text/javascript" src="js/jquery.raty.min.js"></script>

</head>
<?php
$id=1;
$msg_id=192;
?>
<body>
    <div id="click<?php echo $msg_id ;?>" onclick="rate('$id','$msg_id')">
        <input type="hidden" id="uniqueRateID" name="uniqueRateID" value="<?php echo                  $id; ?>" />
        <input type="hidden" name="ratedJS" value="<?php echo $msg_id ;?>" />
    </div>
    <script type="text/javascript">
    $('#click<?php echo $msg_id ;?>').raty({

    });

    function rate(a,b,c)
    {
        alert(a+'jkij'+b+'dfdf'+c+'dddd');
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function()
        {
            if (xmlhttp.readyState==4 )
            { 
                var accdata=xmlhttp.responseText;
            alert(accdata);
                document.getElementById('request').value="Request Sent";
            document.getElementById('request').disabled=true;
            }
        }
       xmlhttp.open("GET","modules/manage friends/update_friend.php?ab="+a+"&&bc="+b+"&&             cd="+c,true);
       xmlhttp.send();
    }
    </script>

2 个答案:

答案 0 :(得分:1)

好像我解决了这个问题,我将其发布以备将来帮助

          <head>
   <title></title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <script type="text/javascript" src="js/jquery.min.js"></script>
   <script type="text/javascript" src="js/jquery.raty.min.js"></script>

        </head>
       <?php

     $id=1;
          $msg_id=192;
               ?>
          <body>
              <div class="rate" id="rate" >
            <div id="click" name="click<?php echo $msg_id ;?>" >
   <input type="text" id="valrate" name="valrate" value="fff"/>
    </div>
    <input type="hidden" id="uniqueRateID" name="uniqueRateID" value="<?php                         echo $id; ?>" />
    <input type="hidden" id="type_id" name="type_id" value="<?php echo $msg_id ;?>" />
    </div>
       <script type="text/javascript">
              $('#click').raty({

                 });


         $("#rate").click(function()
          {
          var a = $('#uniqueRateID').val();
       var b = $('#type_id').val();
         var c = $('#valrate').val();


       $.ajax({
         type: "POST",
         url: "greet.php",
         data: "dataString=" + dataString,
         success: function(result){
             $("#response").html(result);
          }
       });   
});

答案 1 :(得分:0)

您正在使用纯JavaScript来发出ajax请求。为了确保你必须在get:encodeUricomponent(a)...

中编码send发送的值

但是当你包含jquery时,我建议你使用jquery方法简单地创建ajax请求,所以你不需要XHR检测功能:

$.get('modules/manage friends/update_friend.php',{ab:a,bc:b,cd:c},function(accdata){

alert(accdata);

document.getElementById('request').value="Request Sent";
 document.getElementById('request').disabled=true;

});