2017-01-25 11 views
0

2つの入力フィールドがあります。 1つはショーのためのビジネスと呼ばれ、もう1つはauto_search_idと呼ばれる隠され、サーバーに行きます。私はすでにオートコンプリート機能を作成しています。私がしたいのは、ユーザーが入力を開始し、既にビジネスを保存しているオートコンプリートリスト項目をクリックすることを決定した場合、そのページはIDを取得し、update.phpページに送信してPHPセッションIDを更新し、現在のセッションIDを持つページ。JQuery/AJAX:入力フィールドの変更、PHPセッションの作成、現在のページの更新

正しいAJAXコーディングの問題が発生しています。入力フィールドの変更機能が動作しません。それはオートコンプリートをプルアップしますが、オートコンプリートリストアイテムがクリックされると、IDを送信せずページをリフレッシュしません。私はまだJQuery/AJAXを初めて使っていますが、#auto_search_idの変更機能で何か不足していると思いますが、何が分からないのでしょうか。変更イベントが呼び出されている場合は、チェックを必要とする...

Javascriptを/ jQueryの/アヤックス

<script> 
     $(document).ready(function(){ 
      $("#business").autocomplete({ 
       minLength: 2, 
       source: function(request, response){ 
        $.ajax({ 
         type: "POST", 
         url: "/autocomplete-pq.php", 
         dataType: "json", 
         data:'keyword=' + request.term, 
         success: function(data){ 
          response(data); 
         } 
        }); 
       }, 
       select: function(event, ui){ 
        $("#business").val(ui.item.label); 
        $("#auto_search_id").val(ui.item.value); 
        return false; 
       } 
      }); 

      $("#auto_search_id").change(function(){ 
       $.ajax({ 
        type:'POST', 
        url:"/update.php", 
        data: { varname: reponse}, 
        success:function(response){ 
         location.reload() 
        } 
       });    
      }); 
     }); 

    </script> 

PHP

<?php 
     session_start(); 
     $_SESSION["id"] = $_POST["varname"]; 
     echo $_SESSION["id"]; 
    ?> 

HTML

<input type="text" id="business" name="jurisdiction" value="<?php echo $juristiction ?>" required> 
    <input type="hidden" name="search" id="auto_search_id" /> 

答えて

1

を私はコードを再現することはできませんが、私は2つの物事が間違っている参照してください:$("#auto_search_id").val(ui.item.value);を呼び出す

1セッションを維持するために、あなたはそれがパラメータPHPSESSIDを呼び出し、IDだが、それはいくつかのセキュリティへの影響は、読んでください持って合格する必要があります実際には入力の新しい値を設定しますが、の変更イベントをトリガーしません。

$("#auto_search_id").val(ui.item.value).trigger("change"); 

2サーバー(まだ利用できません)をサーバーに送信しようとしています。隠しフィールドの値をサーバーに送信したいと仮定します。

$("#auto_search_id").change(function(){ 
    var newID = $(this).val(); 
    $.ajax({ 
    type:'POST', 
    url:"/update.php", 
    data: {varname: newID}, 
    success:function(response){ 
     location.reload() 
    } 
    });    
}); 
+0

これは助けになりました。私は、隠された価値をサーバーに送るために何かを手掛けていることを知っていました。ありがとう、ありがとう。 – ShadyNicNack

関連する問題