私はアルバムのクラスから情報を得ようとしています。私の問題は私の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>
'.btn-tracks' div、buttonなどを指定できますか? – Xzandro
@Xzandroフォーム内にボタンタイプ=「提出」です。 " –
あなたは' albumTitle'という名前の変数をPOSTしません。あなたは 'title'という名前を付けます。 – JimL