我正在尝试使用AJAX向Google图书发送查询并在我的网站上显示结果.我正在使用JQuery发送请求并处理响应,如下所示:
var query = [formatted input from a form];
var URL = "http://books.google.com/books/feeds/volumes?q="+query+"&start-index=1&max-results=5";
$.ajax({
type: "GET",
url: URL,
dataType: "xml",
success: function(data, status){
alert(status);
}
});
Run Code Online (Sandbox Code Playgroud)
目前,如果收到回复,我只是让脚本提醒"成功".如果我使用我的脚本将该查询发送到本地页面进行测试,这样就可以了.但是当我按照Developer API页面上的说明将URL设置为上面列出的Google时,我从未看到警报.根据Firebug的说法,我收到了一个响应和200个确定的状态,但是它没有达到那个"成功"的道路.有谁知道为什么?
编辑:我应该补充一点,如果我直接关注网址,http://books.google.com等随机q,它会显示Feed XML没有问题,所以查询不是问题.
设计此数据库的人决定为"主题"创建一个多值列,每个值写成有序列表,即"1. [主题] 2. [另一主题] 3. [第三主题]"等.我想制作一个使用的每个主题的数组,所以我需要将这些值分成不同的主题.
$subjects = preg_split("[0-9]+\.\s", $subject);
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到一个警告: preg_split()[function.preg-split]:未知的修饰符'+'.
我究竟做错了什么?
我有一个小应用程序搜索出版物引用.引用是XML格式,我通过PHP将参数传递给XSLT,以便按照乐器或作者等字段进行搜索.结构如下所示:
<publications>
<paper>
<authors>
<author>James Smith</author>
<author>Jane Doe</author>
</authors>
<year>2010</year>
<title>Paper 1</title>
(more children)
</paper>
(more papers)
</publications>
Run Code Online (Sandbox Code Playgroud)
当我在XSLT中调用我的模板时,我使用谓词来减少根据搜索条件显示哪些文件.因此,如果设置参数$ author,例如,我这样做:
<xsl:apply-templates select="paper[contains(authors/author, $author)]" />
Run Code Online (Sandbox Code Playgroud)
问题:这适用于"作者"中的第一作者,但忽略了之后的作者.所以在上面的例子中,搜索"Smith"将返回本文,但"Doe"不会返回任何内容.
如何设置表达式以考虑所有 "作者"元素?