2017-01-28 13 views
0

javascriptコードからサーバーサイドのPHPコードに変数を渡そうとしています。私はそれが私がそれを得ることに失敗したが、私は正しく行ったと信じているアヤックスコールを介して行う必要があります知っている。ここに私のコードは、私がこれまで持っている:javascript変数をPHP AJAXに渡す

上記のコードで

のjQuery

$(document).ready(function(){ 
    $(".search-box").keyup(function(){ 
     $.ajax({ 
     type: "POST", 
     url: "readCountry1.php", 
     data: { cat: $(this).val() }, 
     beforeSend: function(){ 
      $(".search-box").css("background","#FFF"); 
     }, 
     success: function(data){ 
      $(".suggesstion-box").show(); 
      $(".suggesstion-box").html(data); 
      $(".search-box").css("background","#FFF"); 
     } 
     }); 
    }); 
}); 

function selectCountry(val) { 
    $(".search-box").val(val); 
    $(".suggesstion-box").hide(); 
} 

HTML

<form> 
    <div class="frmSearch"> 
     <input type="text" class="search-box" placeholder="Select Category" /> 
     <div class="suggesstion-box"></div> 
    </div> 
    <?php 
    if(isset($_POST['cat'])){ 
    ?> 
     <div class="frmSearch1"> 
      <input type="text" class="search-box1" placeholder="Enter Location" /> 
      <div class="suggesstion-box1"></div> 
     </div> 
    <?php 
    } 
    ?> 
</form> 

iの値が最初に選択されたときに、第2の入力ボックスを表示したいですボックス。そして、ここで私はPHP($猫)に私のjavascriptの変数「猫」を渡すしようとしている私の

readCountry1.php

<ul class="country-list"> 
    <?php 
     require_once("dbcontroller.php"); 
     if(!empty($_POST["cat"])) { 
      $query ="SELECT cat FROM catlist WHERE cat like '%$_POST[cat]%' UNION SELECT scat FROM catlist WHERE scat like '%$_POST[cat]%' ORDER BY cat"; 
      $result = mysqli_query($mysqli, $query); 
      if(!empty($result)) { 
       while($row=mysqli_fetch_array($result)) 
       { 
    ?> 
        <li onClick="selectCountry('<?php echo $row["cat"]; ?>');"><?php echo $row["cat"]; ?></li> 
    <?php 
       } 
      } 
     } 
    ?> 
</ul> 

である、しかし、私はどこかの道に沿って間違って行ってきました。オブジェクト形式でのAjaxの設定データで

+3

あなたはPOSTとしてAJAX要求を設定しています、データ引数を文字列として指定しています。私はこれの振る舞いが何であるか分かりませんが、代わりにオブジェクトを追いかけることを意図していませんか? –

+1

'data:{cat:$(this)} .val()}、' – Jeff

+0

@Chris AJAXについての知識が十分ではありません...これの解決策を教えてください...私が望むのは、ユーザーが最初のボックスで値を選択したときにボックス... – Ashish

答えて

0

data: { cat: $(this).val() }, 

そして

このようなあなたの応答フォームサーバーを送信...

if(!empty($result)) { 
    $data = "<ul>"; 
       while($row=mysqli_fetch_array($result)) 
       { 
        $cat = $row["cat"]; 
        $data.= "<li onClick='selectCountry(".$cat.")'>".$cat."</li>"; 
       } 
    $data.="</ul>";   
      } 
      echo $data; 
+0

こんにちは、私は変更を加えましたが、私のajaxとreadCountry1.php..Textボックスを変更してもコードが動作しません。 – Ashish

関連する問題