我正在编写一个实时搜索歌词上传表单。我已经创建了一个小脚本,我将对其进行AJAX调用。它会返回artist
,album
和song
条记录。输出JSON将在JS中使用。
// get_records.php
include_once("connect2db.php");
if (empty($_GET)) {
$artists = json_encode(mysqli_fetch_all($mysqli->query("SELECT artist from `artists`"), MYSQLI_ASSOC));
echo $artists;
} else {
if (isset($_GET["artist"])) {
$artist = test_input($_GET["artist"]);
if (isset($_GET["album"])) {
// ...
echo $songs;
} else {
// ...
echo $albums;
}
}
}
$mysqli->close();
这很简单。专为三种情况设计:
get_records.php // returns artists
get_records.php?artist=XXX // returns albums of XXX
get_records.php?artist=XXX&album=YYY // returns songs from the album YYY that belongs to XXX
在表单页面中,我希望artists
在任何输入之前已经被赋予JS变量。我不想为此使用AJAX。我可以使其工作的一种方式是:
<?php
echo "var artists = ";
include("get_records.php");
echo ";";
?>
但这似乎错了。有没有办法像这样做
<?php
echo "var artists = " . get_output("get_records.php") . ";";
?>
你知道,获取php文件的输出,而不是它的内容吗?
答案 0 :(得分:0)
您可以将代码放在函数中,然后根据需要从其他脚本中调用它。
主要剧本:
<?php
// get_records.php
function execute()
{
// get_records.php
include_once("connect2db.php");
if (empty($_GET)) {
$artists = json_encode(mysqli_fetch_all($mysqli->query("SELECT artist from `artists`"), MYSQLI_ASSOC));
$response = $artists;
} else {
if (isset($_GET["artist"])) {
$artist = test_input($_GET["artist"]);
if (isset($_GET["album"])) {
// ...
$response = $songs;
} else {
// ...
$response = $albums;
}
}
}
$mysqli->close();
return $response;
}
Ajax脚本:
<?php
// ajax_script.php
include_once("get_records.php");
echo execute();
表单脚本
<?php
// Form File - form_file.php
include_once("get_records.php");
$content = execute();
$response = "<script> var artists = $content ; </script>";
echo $response;