2017-04-03 26 views
-1

讓說我有一個包含file1.php:JSON頭在內PHP文件影響外php文件

<!DOCTYPE html> 
<html> 
<head> 
<title>My page</title> 
</head> 
<body> 
<form action="file1.php" method="post"> 
<input type="radio" name="radio" value="1">1 
<input type="radio" name="radio" value="2">2 
<?php include 'file2.php'; ?> 
<input type="submit" name="submit" value="Submit"> 
</form> 
//some codes omitted here 
</body> 
</html> 

和file2.php:

<?php 
header('Content-Type: application/json'); 
$value_selected = 0; 
if (isset($_POST['submit'])) { 
if(isset($_POST['radio'])) { 
$value_selected = $_POST['radio']; 
} 
} 

include("connect_to_database.php"); 
$sql = 
"SELECT field1, field2 FROM some_table WHERE field1 = ".$value_selected; 
$query = mysql_query($sql); 
$data = array(); 
while ($row = mysql_fetch_assoc($query)) { 
    $data[] = $row; 
} 
mysql_free_result($result); 
print json_encode($data); 
?> 

問題是,當我運行file1.php ,它顯示在文本(JSON我相信)形式,因爲file2.php中的頭文件。有沒有什麼辦法只使用JSON格式創建file2.php而不是file1.php?

+0

每次你在使用[了'mysql_'(http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) 數據庫擴展新代碼 ** [發生這種情況](http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)**它已過時並已使用多年,並已消失永遠在PHP7中。 如果你剛開始學習PHP,花你的精力學習'PDO'或'mysqli'數據庫擴展和準備的語句。 [從這裏開始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+1

根據你的代碼,沒有任何東西將2個文件鏈接在一起。 –

+0

Jon見'file1.php'的第10行 – RiggsFolly

回答

0

如果你還沒有準備好編寫一個AJAX調用來從你的javascript請求這個數據,那麼這可能會讓你朝着正確的方向前進。

將數據加載到可以從您的其他JavaScript中使用JavaScript變量

file2.php

<?php  
$value_selected = 0; 
if (isset($_POST['submit'])) { 
    if(isset($_POST['radio'])) { 
     $value_selected = $_POST['radio']; 

     include("connect_to_database.php"); 
     $sql = "SELECT field1, field2 
       FROM some_table 
       WHERE field1 = ".$value_selected; 
     $query = mysql_query($sql); 
     $data = array(); 
     while ($row = mysql_fetch_assoc($query)) { 
      $data[] = $row; 
     } 
     echo '<script type="text/javascript">';    
     echo 'var theData = ' . json_encode($data) . ';'; 
     echo '<script type="text/javascript">'; 
     mysql_free_result($result); 
    } 
} 

?> 

現在從您的<head>標籤內調用這個,你會一點點接近到你想要的。

file1.php

<!DOCTYPE html> 
<html> 
<head> 
<title>My page</title> 

<?php include 'file2.php'; ?> 

</head> 
<body> 
<form action="file1.php" method="post"> 
<input type="radio" name="radio" value="1">1 
<input type="radio" name="radio" value="2">2 

<input type="submit" name="submit" value="Submit"> 
</form> 
//some codes omitted here 
</body> 
</html> 

不過,我覺得我必須補充 請不要使用mysql_數據庫擴展它已被棄用,多年來一直和一去不復返的PHP7。 如果您只是在學習PHP,請花些精力學習PDOmysqli數據庫擴展和準備好的語句。 Start here

+0

很容易理解。謝謝。但是,js文件實際上包含了AJAX(我們將來會學到),它從file2.php文件中的'json_encoded($ data)'獲取數據。如果我們按照自己的方式進行操作,如果我調用file1.php中的js文件,如何從js文件中調用'theData'變量,如下所示:'。?? – cathy305

+0

某處你必須開始處理該js文件!你是怎樣做的 – RiggsFolly