【问题标题】:Return multiple values ajax and php返回多个值ajax和php
【发布时间】:2016-05-28 00:39:44
【问题描述】:

这是我第一次使用 AJAX,我正在创建一个鼓循环生成器,而不是刷新页面来创建一个新循环,我想尝试 AJAX。

单击#button1 时,它会运行generate.php,我试图从generate.php 回显中返回多个值,并将它们放在页面上的不同元素中。

不同的值是要放置在音频src中的文件url、背景图像url、循环的条数和循环的BPM。它们在 php echo 中用逗号分隔。

当我点击按钮时,我在谷歌开发者工具中收到一条错误提示“jquery-1.7.1.min.js:4 GET https://whatever.com/random/undefined 404 (Not Found)”

按钮:

<div id="button1"><div class="namething">Generate</div></div>

jQuery

<script>
$('#button1').click(function(){
    $.ajax({
        type:'post',
        url:'generate.php',
        data: $(this).val(),                 
        success: function(value){
             var data = value.split(",");
            $('#fileurl').val(data[0]);
            $('body').css('background-image', 'url(' + data[1] + ')');
            $('#bars').val(data[2]);
            $('#bpm').val(data[3]);
        }
    }); 
  });
</script>

generate.php(它在此之前执行函数,但这是我需要返回到我的 jquery 和页面其余部分的唯一数据)

echo $fileurl,$imageurl,$bars,$randbpm;

我不确定,但我认为它与 jQuery 中的“数据:”有关,我只需要找出如何返回回显数据

当我单击按钮时,它正在工作并创建一个新循环,它只是没有正确返回回显数据,所以我知道生成的路径是正确的。php

编辑:(解决方案)

感谢@Thamilan 的帮助!我不得不对 jquery 进行一些小改动来更新音频播放器,它现在可以正常工作了:

jQuery

<script>
$('#button1').click(function(){
    $.ajax({
    type:'post',
    url:'generate.php',
    data: $(this).val(),
    dataType: 'json',
    success: function(data){
        var fileName = data[0];
        $("#music").attr("src",fileName).trigger("play");
        $('#timeline').css('background-image', 'url(' + data[1] + ')');
        $('#bars').text(data[2]);
        $('#bpm').text(data[3]);
    }
}); 
  });
</script>

PHP:

$returnArr = [$fileurl,$imageurl,$bars,$randbpm];    
echo json_encode($returnArr);

【问题讨论】:

  • 这是表单按钮吗?如果是则需要阻止默认提交
  • 只是一个 div
    生成
  • 你的路径很可能与'generate.php'不正确
  • 将它们添加到数组中。从 generate 作为 JSON 发送,在 AJAX 中获取 JSON,打印出来。
  • 我刚刚检查了我的数据库,当我单击按钮时它正在工作并创建一个新循环,它只是没有正确返回回显数据,所以我知道生成的路径是正确的。php

标签: javascript php jquery html ajax


【解决方案1】:

generate.php 中将它们添加到数组中并编码为 JSON 并发送。在 AJAX 中获取 JSON,打印出来。

使您的 AJAX 类似于:

$.ajax({
    type:'post',
    url:'generate.php',
    data: $(this).val(),
    dataType: 'json',          //Added this
    success: function(data){   //value to data
        $('#fileurl').val(data[0]);
        $('body').css('background-image', 'url(' + data[1] + ')');
        $('#bars').val(data[2]);
        $('#bpm').val(data[3]);
    }
}); 

generate.php

$returnArr = [$fileurl,$imageurl,$bars,$randbpm];    
echo json_encode($returnArr);

【讨论】:

  • 嘿 Tamilan,这正在工作,它正在返回数据!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 2012-06-06
  • 2019-04-08
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多