2017-02-23 12 views
-1

私はAJAXを使い慣れているので、これはシンプルですが、申し訳ありませんが、私は他のすべての場所を見てきて、私が間違っていることを見ることはできません。このAJAXリクエストで何が間違っていますか?

$ _POST ['name']を実際の値にスワップすると、たとえば$ name = 'apple'; - すべて正常に動作します。しかし、私がAJAXの投稿要求からPHPのファイルの値を取得しようとすると、以下のように動作しません。助けて!前もって感謝します。

PHP

$name = $_POST['name']; 

$sql = "SELECT * FROM sales WHERE email = 'test' AND item = '$name' "; 
$result = mysqli_query($conn, $sql); 

    if ($result){ 

        $row = mysqli_fetch_array($result); 


        echo json_encode($row); 


       } else { 
         echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
       } 

のjQuery

$(document).ready(function(){ 
    $('.option').on('click', function(){ 
    var name = $(this).val(); 
     $.post('ajax.php', {name: name}, function(data) { 

      var obj = jQuery.parseJSON(data); 
      var desc = obj[7] 
      $('#name').val(desc); 
     }); 
    }); 
    }); 

HTML

Item: <input type = "text" id = "name" size = "6"> 
    Description: <input type = "text" id = "name" size = "6"> 
    Qty: <input type = "text" id = "name" size = "6"> 
    Price: <input type = "text" id = "name" size = "6"> 
    Discount: <input type = "text" id = "name" size = "6"> 
    Account: <input type = "text" id = "name" size = "6"> 
    Tax Rate: <input type = "text" id = "name" size = "6"> 
    Amount: <input type = "text" id = "name" size = "6"> 
    <div class = "option">Apple</div> 
+0

var_dump($ _ POST ['name'])で正しい結果が得られることを確認してください。 – scaisEdge

+0

あなたはhtmlコードも投稿できます –

+0

エラーが発生しますか?それとも何か? – Condorcho

答えて

2

Appleはclassオプションを使用してdiv要素の値ではない、それは内側のhtmlです。

あなたのコードは、クラスオプションを持つオブジェクトがクリックされたときにクリックされた要素の値をチェックしています。 、現在のコードで正しい行動を参照してください、私はこれはあなたの最終的な解決策を見てみたいが、常に使用しているまさに方法について慎重になる方法です疑う

var name = $(this).html(); 

var name = $(this).val(); 

を変更するには戻る。

編集:IDは一意である必要があります。入力オブジェクトに同じIDを使用することを強くお勧めします。

+0

ありがとう、私もjqueryに慣れていません。 – user1849962

+1

初心者のためにうまくやっていますが、html jqueryとcssの細かいやベストプラクティスがたくさんあります。私はひどい偽善者であり、私が仕事をしているように思えますが、html jqueryとcssで正しく動作する方法についてのチュートリアルやガイドを読むことを強くお勧めします。 –

+0

乾杯、する – user1849962

関連する問題