Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax函数不在单击时发送数据_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript Ajax函数不在单击时发送数据

Javascript Ajax函数不在单击时发送数据,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,问题解决了 怎么做 首先,这个错误是: 数据:'rate'+$('rate').val() 需要改变什么正如你们告诉我的: 数据:'rate='+rate,或数据:{rate:rate} 但我的服务器设置也存在另一个问题,需要(我不知道原因)一个指向php文件的绝对URL,而不是相对URL 谢谢你们的时间和帮助 我在评级脚本的onclick元素方面遇到了一些问题。当用户单击其中一个字段时,应通过ajax post方法发送值 <li id="rating-boxes-rate" oncli

问题解决了

怎么做

首先,这个错误是:

数据:'rate'+$('rate').val()

需要改变什么正如你们告诉我的:

数据:'rate='+rate,或数据:{rate:rate}

但我的服务器设置也存在另一个问题,需要(我不知道原因)一个指向php文件的绝对URL,而不是相对URL

谢谢你们的时间和帮助


我在评级脚本的onclick元素方面遇到了一些问题。当用户单击其中一个字段时,应通过ajax post方法发送值

<li id="rating-boxes-rate" onclick="rateFunction(1)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(2)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(3)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(4)"></li>
<li id="rating-boxes-rate" onclick="rateFunction(5)"></li>
此时警报显示正确,但不幸的是,数据没有发送到rate.php,此时rate.php是一个用于测试的简单回显语句:

$rate = $_POST['rate'];
echo $rate;

有人知道我的代码到底哪里错了吗?提前谢谢。

传递
数据
a
json

data: {
    rate : rate
}
请注意,它总是
然后

乙二醇

我不认为
$('rate').val()
意味着什么;您希望传递速率值,例如-1,2,3。。到php

所以试试这个-

data: {
    rate: rate
},
而不是-

data: 'rate' + $('rate').val(),

另一方面,你不应该使用-

你可以这样做-

<li id="rating-boxes-rate" rate="1"></li>
...

<script>
 $("#rating-boxes-rate").click(function(e) {
  var rate=$(this).attr('rate');
  $.ajax({
     url: '../rate.php',                    //rate.php location in parent folder
     type: 'POST',
     data: {rate: rate},
     success: function(html){
        alert(html);
     }
 });
});
  • ... $(“#评级框费率”)。单击(功能(e){ var rate=$(this.attr('rate'); $.ajax({ url:“../rate.php”,//rate.php在父文件夹中的位置 键入:“POST”, 数据:{rate:rate}, 成功:函数(html){ 警报(html); } }); });
    检查此项-

    function rateFunction(rate){
    
    
            $.ajax({
                url: '../rate.php',                    //rate.php location in parent folder
                type: 'POST',
                data: { rate : rate},
                success: function(html){
                     alert('Rating: ' + this_rate);          //just to check, will be deleted later
                     $('#message_success').html(html); //message div id located in my html to show the outcome
                }
            });
          return false;
    }
    
    选择器
    $('rate')
    正在尝试查找类型为
    rate
    的节点,该节点很可能不存在于标记中

    既然将速率作为参数传递到函数中,为什么不直接将其传递到ajax请求中呢

    $.ajax({
        url: '../rate.php',
        type: 'POST',
        data: {"rate": rate},
        success: function(response) {
            alert(response);
        }
    });
    
    请试一试

    data
    {
     rate:rate
    },
    
    它将工作

    而不是

    data: 'rate' + $('rate').val()
    
    使用


    不幸的是,没有工作。我现在在这个问题上讨论了12个小时:-(你在
    html
    console.log(html)中得到了什么
    ?未捕获的SyntaxError:函数开始时出现意外标记警报
    rate
    的值始终正确显示警报值。无论警报是放在最上面还是放在success函数中。但此处的类型:“POST”正确吗?还是我需要将其更改为JSON类型?我喜欢时从未遇到过任何问题e提交普通的ajax表单,但此onclick操作似乎有所不同。能否请您控制台记录并粘贴ajax请求成功时作为响应返回的html?资源解释为脚本,但使用MIME类型text/html传输:检查此链接-
    $.ajax({
        url: '../rate.php',
        type: 'POST',
        data: {"rate": rate},
        success: function(response) {
            alert(response);
        }
    });
    
    data
    {
     rate:rate
    },
    
    data: 'rate' + $('rate').val()
    
    data: {'rate': rate}
    
    data: 'rate=' + rate