提问人:Jordan Carter 提问时间:4/11/2016 最后编辑:Jordan Carter 更新时间:4/11/2016 访问量:104
为什么在使用 AJAX 调用 php 方法时会出现未定义的索引?
Why am I getting undefined index when calling a php method with AJAX?
问:
我正在尝试从我的专辑课中获取一些信息。我认为我的问题在于我的 AJAX 调用的语法。让我一步一步地为你分解一下。方法如下:
相册.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;
}
顺便说一句,这种方法工作正常。现在这是我调用此方法的 php 文件:
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
});
});
});
我的警报只是弹出,告诉我我有一个未定义的索引:albumTitle。
顺便说一句,这是我的按钮:
<button type='submit' class='btn-tracks' value='" . $album['albums_title'] . "'>Show Tracks</button>
答:
1赞
JimL
4/11/2016
#1
在 GetTracks.php 中,您期望收到$_POST['albumTitle']
$tracks->getTracks($_POST['albumTitle']);
但是你从 javascript 传入$_POST['title']
data: {title: albumTitle},
改变任何一个(所以它们是平等的),你应该没问题
评论
0赞
Jordan Carter
4/11/2016
我这样做了,但在警报中什么也没得到。不过,至少未定义的索引错误消失了。
0赞
Jordan Carter
4/11/2016
我想我解决了这个问题。在我的相册.php文件中,我只是返回了$tracks。我想当我对此发出警报时,它无法向阵列发出警报。我试着var_dumping它,它很好地显示了所有信息。现在我想剩下的就是使用 jQuery 用信息填充我的页面!感谢您的帮助。
上一个:未定义索引 ajax php
下一个:Post 请求中的未定义索引
评论
.btn-tracks
albumTitle
title