2016-04-10 4 views
2

私はアルバムのクラスから情報を得ようとしています。私の問題は私のAJAX呼び出しの構文にあると思う。私はこれをあなたのために段階的に打ち破ろう。AJAXでPHPメソッドを呼び出すときに、未定義のインデックスが取得されるのはなぜですか?

Album.php

... 

    public function getTracks ($title) { 

    $db = Dbclass::getDB(); 
    $query = "SELECT * 
       FROM upcoming_albums_tracks 
       WHERE albums_title = :title"; 

    $statement = $db->prepare($query); 
    $statement->bindParam(':title', $title, PDO::PARAM_STR, 50); 
    $statement->execute(); 
    $tracks = $statement->fetchAll(); 
    return $tracks; 

    } 

この方法は、方法によって、正常に動作している:ここでの方法です。

GetTracks.php

<?php 
require_once '../../models/database.php'; 
require_once 'Album.php'; 

$tracks = new Album; 
$tracks->getTracks($_POST['albumTitle']); 

return $tracks; 

そして最後に、AJAX呼び出し

upcoming_albums_ajax.js

... 

    $(document).ready(function() { 

    //Get track info with Ajax 
    $(".btn-tracks").click(function (e) { 

     // stop form submission first 
     e.preventDefault(); 

     // get album title 
     var albumTitle = $(this).val(); 
     console.log(albumTitle) //This gives me the value I'm looking for. 

     // get tracks from php 
     $.ajax({ 
      url : '../../controllers/admin/GetTracks.php', 
      //I think the issue is in how I'm formatting the data. 
      data: {title: albumTitle}, 
      type : 'POST', 
      success : function (d) { 
       alert(d); 
      }, 
      error : errorHandler 
     }); 

    }); 

}); 

マイアラートがちょうど言ってポップアップ表示:さて、ここで、このメソッドを呼び出して、私のPHPファイルです私には未定義のインデックス:albumTitleがあります。ところで

が、これは私のボタンです:あなたは $_POST['albumTitle']

$tracks->getTracks($_POST['albumTitle']); 

を受け取ることを期待GetTracks.phpで

<button type='submit' class='btn-tracks' value='" . $album['albums_title'] . "'>Show Tracks</button> 
+0

'.btn-tracks' div、buttonなどを指定できますか? – Xzandro

+0

@Xzandroフォーム内にボタンタイプ=「提出」です。 "

+2

あなたは' albumTitle'という名前の変数をPOSTしません。あなたは 'title'という名前を付けます。 – JimL

答えて

1

しかし、あなたはjavascriptを

data: {title: albumTitle}, 

から $_POST['title']に渡します

変更する(同じになるので)どちらかを変更して、細かいものにする必要があります

+0

私はそれをしましたが、警報の中で何も得られません。しかし、少なくとも定義されていないインデックスエラーは消え去った。 –

+0

私はこの問題を解決したと思います。私のAlbum.phpファイルでは、単に$トラックを返しました。私はこれを警告すると、アレイに警告することはできません。私はそれをvar_dumpingしようとし、それはすべての情報をちょうどいいことを示した。今は残っているのは、jQueryを使ってページに情報を入力することだと思います。ご協力いただきありがとうございます。 –

関連する問題