2

私は ajax Based Search を開発しています。これはどのようになるかのデモです。結果を返す際に問題に直面しています。結果を 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>

I 以下の 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」として 2 回表示する必要がありますが、表示されるのは 1 回だけです。両方の結果を得るにはどうすればよいですか。

4

2 に答える 2

0

この行がphpを混乱させている可能性はありますか:

while($i<2) {
return['msg'] = $get_product;
}

$return にするべきですか?「return」のような予約語を使用するのも少し難しいです。

于 2012-06-01T12:59:42.167 に答える
0

次のコードを変更してください。

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 ループを使用します。その間は終わりがありません。したがって、スタックオーバーフローの可能性があります...

于 2014-04-28T08:37:21.313 に答える