【问题标题】:Return Multiple Values on Passing Arguments via AJAX, PHP and MYSQL通过 AJAX、PHP 和 MYSQL 传递参数时返回多个值
【发布时间】:2012-06-06 15:28:00
【问题描述】:

我正在开发基于 ajax 的搜索,这是它的演示。我在返回结果时遇到问题。我需要显示 Result 2 次。但它只显示一次。下面是我的 HTML 代码

<form action="" method="post" id="demoform">
<select style="width:250px;padding:5px 0px;color:#f1eedb;"  name="product" class="product">
   <option>TENNIS</option>
   <option>FOOTBALL</option>
   <option>SWIMMING</option>
</select>
</form>
<div id="result">Display Result Here</div>

我使用下面的 Ajax 脚本来检索数据:-

$(".product").change(function(){
            $.ajax({
                type : 'POST',
                url : 'post.php',
                dataType : 'json',
                data: {
                    product : $(".product option:selected").text(),
                },
                success : function(data){
                    $('#result').removeClass().addClass((data.error === true) ? 'error' : 'success')
                        .html(data.msg).show();
                    if (data.error === true)
                        $('#demoForm').show();
                },
                error : function(XMLHttpRequest, textStatus, errorThrown) {
                    $('#result').removeClass().addClass('error')
                        .text('There was an error.').show(500);
                    $('#demoForm').show();
                }
            });
        });

post.php 文件的代码如下:-

<?php
require('connect.php');
$get_select = $_POST[product];
if($get_product!='FOOTBALL'){
  $return['error'] = true;
  return['msg'] = 'Incorrect Selection';
  echo json_encode(return);
}
else {
  $return['error'] = false;
  $i=0;
  while($i<2) {
    return['msg'] = $get_product;
  }
  echo json_encode(return);//Returns only one result.
}
?>

我需要将结果显示为“CRICKET CRICKET”两次,但它只显示一次。 我应该怎么做才能得到这两个结果。

【问题讨论】:

  • 我有几个关于 PHP 的问题: (1) $get_product 不存在 - 你的意思是 $get_select 吗? (2)所有你说'return'的地方你的意思是'$return'吗? (3) 你为什么将 $get_product 放入 $return['msg'] 两次 - 你认为你会得到两个结果吗?如果你选择'FOOTBALL',你应该得到 {'error':'false','msg':'FOOTBALL'} 的效果。
  • @adwitya-media 请看答案并标记正确的答案:)

标签: php mysql html ajax jquery


【解决方案1】:

会不会是这行让php混淆了:

while($i 返回['msg'] = $get_product;
}

应该是 $return 吗?使用像“return”这样的保留字也有点不确定。

【讨论】:

    【解决方案2】:

    请更改以下代码:

    else {
      $i=0;
      $messageToReturn = "";
      while($i<2) {
        $messageToReturn .= $get_product; //Append to your variable
      }
      return json_encode($messageToReturn); //Returns the result
    }
    

    我建议将 while 更改为 for 循环。 在这种情况下,你会得到这个:

    else {
     $messageToReturn = "";
     for($i = 0; $i < 2; $i++)
     {
        $messageToReturn .= $get_product; //Append to your variable
     }
     return json_encode($messageToReturn);
    

    如果您知道需要重复的次数,请使用 for 循环。时光永无止境。所以你可以得到一个可能的堆栈溢出......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多