2016-05-23 20 views
1

idデータをajax経由で送信しようとしていますが、私は常に未定義の変数エラーが発生します。 ajaxはフォームデータで正常に動作しますが、id値を取得しようとするとこの問題が発生します。ajaxを使用して要素idデータを送信できません

PHP/HTMLコード

<ul class="sub-menu"> 
    <?php 
     $get_cats = retrieve_cat(); 
     while($cat_rows = mysqli_fetch_array($get_cats)){ 

      $id = $cat_rows['category_id']; 
      $title = $cat_rows['category_name']; 
      echo "<li><a herf='post_category.php' class='abc' data-id='$id' id='$id' data-target='post_category'> $title </a></li>"; 
     } 
    ?> 
</ul> 

はJQuery:

$(".abc").click(function() { 
    var id = $(this).attr("id");   
    edit_data(id); 

    function edit_data(id) 
    { 
    $.ajax({ 
     url:"post_category.php", 
     method:"POST", 
     data:{id:id}, 
     dataType:"text", 
     success:function(data){ 
      alert(data); 
     } 
    }); 
    } 
}); 

そしてpost_category.phpページはちょうどそれをテストするために値をエコーし​​ます

echo $_POST['id'];  

私はこれを得る問題エラー私が言ったように:未定義のインデックス:Cのid:\ xamppの\ htdocsに\ UNV \ post_category.phpライン

しかし、成功機能

お知らせ

私は正しい値を得ます。私はどこに問題があるのか​​分からない!

これは、より詳細な説明

http://store2.up-00.com/2016-05/1464026786681.png

+0

'method:" POStT "'を 'method:" POST "'に置き換えてもいいですか? – purvik7373

+0

それは編集ミスでした。申し訳ありません。 POST名は正しく書き込まれていますが、同じ問題が引き続き発生します。 –

+1

こんにちは、私は問題がdataType引数に関連していると思う、たぶんあなたは 'テキスト'の代わりに 'json'を渡す必要があります、あなたの要求ペイロードのタイプに関連する問題であるようです...私はどのようにPHP JSON.stringify({id:id})を使用してテキスト内のハッシュオブジェクトを変換する –

答えて

0

ための絵だあなたの問題は、与えられたコードの下でこれを変更するmethod:"POStT"です。

method:"POST" 

ここでは誤植です。実際にはメソッド名はポストです。

+0

私は間違いを編集していました。ここではねコードに正しくPOSTを書いてありがとう –

1

タイプミスがありました。私はコードの一部を書き直しました。あなたはこれを試すことができます。

<script> 
    $(document).on('click', '.abc', function(){ 
     var id = $(this).data('id'); 
     edit_data(id); 
     function edit_data(id) { 
      $.ajax({ 
       url:"post_category.php", 
       method:"POST", 
       data:{id:id}, 
       dataType:"text", 
       success:function(data){ 
        alert(data); 
       } 
      }); 
     } 
    }); 
</script> 
+0

ありがとうございますが、それは修正されませんでした。 http://store2.up-00.com/2016-05/1464026786681.png –

+0

@AhmadzIssa申し訳ありませんが、私はそこに行がありませんでした。コードを更新しました。答えを確認してください – Rehmat

+0

前のコードで関数を呼び出しましたが、問題は解決しませんでした。 ajaxはフォームでうまく動作しますが、この問題が発生したときにid値を取得しようとすると解決できません。 –

0

ます。詳細については

method:"POST", 

type: "POST", 

を変更してくださいすることができ、あなたのページでpost_category.phpを含めているので、このLink

1

をチェックそれで、それがidをエコーし​​ようとしますここにあなたが代わりにpost_category.phpページを含むのスパンを追加する必要がありますので、IDはクリックするだけの後に利用できるようになりますので:

<span id="my-id-here"></span> 

そして、成功コールバックにそれにidを追加します。

.... 
success:function(data){ 
    $('#my-id-here').append(data); 
} 

は、この情報がお役に立てば幸いです。

+0

私はそれが設定されているかどうかをチェックしようとしましたが、変数に値が渡されていないので、何も表示されません。 –

+1

はい、その値はクリック後に送信され、ページに表示されずにアラートボックスに表示されるため、ページに表示するには、たとえばIDを含むスパンを追加し、私の例を確認してください。 –

+0

ええ、それはあなたが試みたと言っていると働いて、データをデータベースに送信します。しかし、私は変数に来る価値を割り当てることは、このエラーを得ることなく可能ですか? –

関連する問題