【问题标题】:Get server-side php output through select2 x-editable通过select2 x-editable获取服务器端php输出
【发布时间】:2015-11-26 19:35:22
【问题描述】:

我正在使用 select2 v3.5.4 和 X-editable v1.5.0

我有一个 editable 使用 select2 通过 POST 将数据发送到服务器上运行的 PHP 脚本,我正在尝试将服务器输出打印到 js 控制台。我正在尝试使用success() 函数,但在选择值并点击确认按钮后,我在 Chrome 控制台中得到的只是undefined。

Javascript:

$(".sel").editable( {
  source  : [{id: '1', text: 'One'},
             {id: '2', text: 'Two'},
             {id: '3', text: 'Three'}],
  select2 : {multiple: true},
  url     : "animalsDetailsEdit.php",
  dataType: 'JSON',
  success : function(response, newValue) {
              console.log(response);
            },
  error   : function(){
              console.log("Error");
            }
});

服务器端 PHP:

<?php
  echo json_encode("TEST MESSAGE");
?>

我尝试了多种参数组合,但无济于事。

【问题讨论】:

    标签: javascript php web jquery-select2 x-editable


    【解决方案1】:

    我通常设置我的 PHP 输出的标题,这样 javascript 可以轻松读取输出,并且还禁用错误报告,因此 API 变得非常适合 Javascript 读取它。

    <?php
    error_reporting(0);
    ...
    ...
    ...
    header('Content-Type:application/json;');
    echo json_encode("TEST MESSAGE");
    

    您还可以在标题中设置字符集,例如“UTF-8”等。这个输出很容易被javascript读取...... 我注意到的另一件事是测试消息是一个字符串而不是一个数组我建议你这样做......

    <?php
    error_reporting(0);
    $output = array();
    $output['status'] = true;
    $output['message'] = 'Test Message';
    header('Content-Type:application/json;');
    echo json_encode($output);
    

    在 Javascript 中,您可以使用输出数组来检查状态和消息。或者您可以为错误创建另一个变量,您也可以在其中放置错误消息...

    <?php
    $output['status'] = false;
    $output['error'] = 'error message';
    $output['data'] = array();
    

    【讨论】:

    • 我已经更新了 PHP 以反映您建议的更改,但 success() 函数的 response 变量仍然未定义,因此当我尝试 JSON.parse() 时会抛出 Unexpected token u .我应该补充一点,当在测试按钮上使用简单的$.ajax() 函数时,我可以很好地读取 PHP 输出,并且这个问题只发生在使用 Select2 的 X-editable 中。我正在考虑完全放弃 select2。
    • 你能显示输出吗?可以用来理解问题
    • echo json_encode("TEST MESSAGE"); 应该发送回用 json 编码的“TEST MESSAGE”字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2017-11-30
    • 2011-01-03
    • 2016-01-30
    • 2018-11-17
    • 2015-12-04
    相关资源
    最近更新 更多