2016-06-13 10 views
1

Ich kodiere eine Live-Suche nach einem Text-Upload-Formular. Ich habe ein kleines Skript erstellt, mit dem ich AJAX-Anrufe machen werde. Es gibt artist, album und song Datensätze zurück. Der Ausgabe-JSON wird in JS verwendet.Zuweisen/Echo php Dateiausgabe zu einer PHP-Variable

// 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(); 

Es ist ziemlich einfach. Entwickelt für drei Fälle:

  • 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

In der Formularseite, möchte ich artists bereits zu einem JS-Variable vor jedem Eingang assinged werden. Ich möchte AJAX dafür nicht verwenden. Eine Möglichkeit, wie ich es funktionieren lassen könnte, ist wie folgt:

<?php 
    echo "var artists = "; 
    include("get_records.php"); 
    echo ";"; 
?> 

aber das scheint nur falsch. Gibt es eine Möglichkeit, es wie diese

<?php 
    echo "var artists = " . get_output("get_records.php") . ";"; 
?> 

Sie wissen, zu tun, die Ausgabe der PHP-Datei zu erhalten, nicht es ist Inhalt?

+1

Wie wäre es 'echo "var Künstler =". file_get_contents ("http: //localhost/get_records.php"). ";"; "? – revo

+0

@revo Bereits versucht, dass. Dies liest nur den Inhalt der Datei und gibt ihn als String zurück. Führt den Code in der Datei nicht aus. – akinuri

+1

Dies sollte gut funktionieren, da Sie es in einer PHP-Datei enthalten, so dass die Ausgabe die Ausgabe ist, nicht der Inhalt des PHP-Codes. –

Antwort

0

Sie können dies tun, indem Sie Ihren Code in eine Funktion einfügen und sie dann von den anderen Skripten aufrufen, wie Sie es benötigen.

Haupt Skript:

<?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 Script:

<?php 
// ajax_script.php 

include_once("get_records.php"); 

echo execute(); 

Formular Script

<?php 

// Form File - form_file.php 
include_once("get_records.php"); 

$content = execute(); 

$response = "<script> var artists = $content ; </script>"; 

echo $response; 
Verwandte Themen