2016-06-14 6 views
1

PHPファイルのポスト値を取得できません。ここに私のコードは次のとおりです。AJAXポストは機能しませんが、200 OKを取得します

HTML

<div class="add_to_cart"> 
    <input class="product_id" name="product_id" value="989" type="hidden"> 
    <input class="cart_btn" type="submit" name="add" value="Προσθήκη στο καλάθι"> 
</div> 

AJAX要求

<script> 
    $(document).ready(function(){ 
    $(".cart_btn").click(function(){ 
    var id=$(".product_id").val(); 
    var dataString = 'id='+ id; 
    $.ajax({ 
     type: "POST", 
     url: "ajax/add_to_cart.php", 
     data: dataString, 
     cache: false, 

     }); 

    }); 
}); 
</script> 

add_to_cart.php

<?php 


     $test = $_POST['id']; 
     echo $test; 

?> 

Iグラムら次のエラー

お知らせ:未定義のインデックス:Kのid:私はそれに.val()を呼び出すときに、おそらく<a/>または<button/>ある.cart-btnが、以来、undefinedを返すと考えている\ XAMPP

+0

はい私はそれを意図的に変更したことを知っています。まだそれは動作していません – Kinggeov

+0

var id = $(this).val();それはvar id = $( "。product_id")でなければなりません。 –

+0

私はネットワークの状態をチェックすると値を見ることができます... – Kinggeov

答えて

0

それは入力ではありません。

代わりにその文字列をハードコードしてみてください。 var id = "testing purposes"

それが動作する場合、あなたが代わりにデータ属性にプロダクトIDを置くことができます。

<a class="cart_btn" data-product-id="2">Add to cart</a> 

...と、このようなアクセスを:var id = $(this).data('product-id');

+0

これは動作していません – Kinggeov

+0

何がうまくいかないのですか? ID値をハードコーディングしていますか?また、代わりにデータをオブジェクトにしようとしましたか? 'var dataString = {id:id};' – Dencker

+0

今、私のIDは未定義です – Kinggeov

-1

は単にjqueryの$ .postメソッドを使用して、これを試してみてください

<script> 
    $(document).ready(function(){ 
     $(".cart_btn").click(function(e){ 
     e.preventDefault(); 
     //var product_id=$(this).val(); // Button value "Προσθήκη στο καλάθι" 
     var product_id = $('.product_id').val(); // Hiddent input value "989" 
     $.post("ajax/add_to_cart.php", { id: product_id}, function(resp){ 

     }); 
    }) 
}); 
</script> 
+0

あなたはそれが[まったく同じ](https://github.com/jquery/jquery/blob/master/src/ajax.js#L833-L852)であることを認識していますか? – Dencker

+0

@DenckerこれにはpreventDefaultがあります。どちらが重要か – apokryfos

+0

ああ、私は "jquery $ .postを使って簡単に試してください"と読みます - 申し訳ありません。 – Dencker

関連する問題