【问题标题】:Rating plugin pass value to AJAX评级插件将值传递给 AJAX
【发布时间】:2012-02-10 13:39:36
【问题描述】:

我试图为 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>

【问题讨论】:

    标签: php ajax rating


    【解决方案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);
              }
           });   
    });
    

    【讨论】:

      【解决方案2】:

      您正在使用纯 javascript 来发出 ajax 请求。为确保您必须对 get 中发送的值进行编码:encodeUricomponent(a)...

      但由于您包含 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;
      
      });
      

      【讨论】:

      • 我只是在尝试,但传递的值仍然是未定义的,不知道问题出在哪里
      • 我注意到的另一件事是 rate(a,b,c) 有 3 个参数,在这里 onclick="rate('$id','$msg_id') 你只给了其中 2 个,所以 c 将是未定义的
      • 即使在删除它并仅设置 a 和 b 之后,vale 也未定义
      • 错误在这里onclick="rate('$id','$msg_id')"这一定是onclick="rate('&lt;?php echo $id ?&gt;','&lt;?php echo $msg_id ?&gt;')"
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多