2016-12-02 3 views
0

$ _GET ['id'](#/ post?id)でページにIDを送信しないエラーが発生しました= 1)

を私は次のエラーを取得する:

Notice: Undefined index: id in D:\xampp\htdocs\ls\includes\post.php on line 3 

はGitHubのを参照してください:https://github.com/liamstewart23/LSPortfolio

私はブログのページを持っています。リストのブログ投稿はうまく動作します。

私は私の記事ページにIDを送信しようとすると問題がある:

Blog.php

<?php 
require_once("../admin/phpscripts/init.php"); 
$tbl="tbl_blog"; 
$getPosts = getAll($tbl); 
//echo $getPosts; 
?> 
<section id="blog"> 
<h2 class="hidden">Blog Posts</h2> 
<div class="row"> 
<div class="col-xs-12 col-sm-12 col-md-10 col-md-offset-1"><h2>Blog</h2></div> 
<div class="col-xs-12 col-sm-12 col-md-10 col-md-offset-1"><h3>My thoughts, beliefs and complaints.</h3></div> 
</div> 
<div class="row"> 
<div class="col-xs-12 col-sm-12 col-sm-offset-0 col-md-8 col-md-offset-2" id="blog-posts"> 
<?php 
if(!is_string($getPosts)){ 
while($row = mysqli_fetch_array($getPosts)){ 
     echo "<h1>{$row['b_title']}</h1>"; 
     echo "<span>Posted: {$row['b_date']} by {$row['b_author']}</span><br><br>"; 
     echo "<a href=\"#/post?id={$row['b_id']}\">Read Post...</a><br><br>"; 
     } 
     } else { 
     //echo "nope..."; 
     } 
     ?> 
    </div> 
</div> 

Post.php

<?php 
require_once("../admin/phpscripts/init.php"); 
echo $_GET["id"]; 
echo "hello"; 
?> 

Read.php (require_onceでinit.phpで呼び出されます)

<?php 
function getAll($tbl){ 
    require_once("config.php"); 
    $queryAll = "SELECT * FROM {$tbl}"; 
    //echo $queryAll; 
    $runAll = mysqli_query($link, $queryAll); 
    if($runAll) { 
     return $runAll; 
    } else { 
     $error = "There was an error accessing this information. Shoot me an email at [email protected]"; 
     return $error; 
    } 

    mysqli_close($link); //want to make sure that it is terminated, do not want anything accessible 
} 


function getPost($id, $tbl, $col) { 
    require_once("config.php"); 
    $querySingle = "SELECT * FROM {$tbl} WHERE {$col}={$id}"; 
    //echo $querySingle; 
    $runSingle = mysqli_query($link, $querySingle); 
    if($runSingle) { 
     return $runSingle; 
    } 
    else { 
     $error = "This is not the movie you are looking for..."; 
     return $error; 
    } 
    mysqli_close($link); 
} 
?> 
+0

post.phpを読み込んでおり、(Apacheや他のサーバー経由で読み込まれたように)解析することを期待している場合、あなたは悪い時を過すでしょう。あなたはまだあなたのpost.phpをウェブサービスとして使うことができます。 $ http(ajax)を呼び出すのではなく、PHPスクリプトのクライアント側を読み込みます。あなたのhtmlテンプレートに$ httpが返すものを表示します。 – Ronnie

+0

@Ronnieこれがどのように行われたかを私に見せてもらえますか?私はこれをすべて角度をつけて新しいです。大いに感謝しますか? –

+0

あなたは以前に何かajaxをやりましたか? – Ronnie

答えて

1

PHPのようなサーバーサイドスクリプトと通信するときには、$http要求またはajax要求を行う必要があります。

Angularはクライアント側であり、PHPファイルを解析しません。あなたが好きと

$http.get('http://some.url?id=someId')のような要求をしたり、私がトップレベルでHTTPリクエストを作成する方法である$_POST

var params = {id:someId}; 
$http.post('http://some.url',params); 

を使用することを推奨している場合は、$_GETを使用することができます。 PHPが何かを返すときを知る必要があるので、それを聞いてみましょう。

var params = {id:someId}; 
$http.post('http://some.url',params).then(function(response) { 
    console.log(response); 
}); 

あなたのコンソールには、あなたのPHPアプリケーションが返すものが表示されます。その時点で、アングルアプリのデータで何ができるのですか?例えば、このcodepenを参照してください。

http://codepen.io/anon/pen/xRYVBB?editors=1010

PHPがcodepenではなく、それは私のサーバー上にあるので、ここではそれがどのように見えるかです。

ang-ajax-demo.php

<?php 
if (isset($_GET['id'])) { 
    echo "Blog data for id: " . $_GET['id']; 
} else { 
    echo "no id"; 
} 

私は非常にあなたがあなたのアプリをやった方法を再考をお勧めします。すべてのPHPファイルを取り除き、htmlファイルをテンプレートとして使用します。クライアント側とサーバー側のファイルをデカップリングする必要があります。あなたの角型アプリはPHPファイルにHTTP(ajax)リクエストを行います。

+0

私はまだコンセプトをつかむのに苦労しています。とにかく助けてくれてありがとう! –

+0

これまでにAjaxをやっていないのであれば、苦労しているのを見ることができます。このチュートリアルは少し古いですが、それはまだ関連しています:http://angularcode.com/simple-task-manager-application-using-angularjs-php-mysql/あなたのプロジェクトから休憩を取り、この1つをすばやく実行してください。これはあなたにAJAXのより良い理解を提供し、あなたのアプリで何をしようとしているのですか – Ronnie

+0

この部分についてさらに説明できますか:\t vm = this; vm.getPost = function(){ \t var randomId = Math.round(Math.random()* 1234); \t $ http.get( 'http://ronnieswietek.com/ang-ajax-demo.php?id=' + randomId).then(機能(応答){ \t console.log(response.data); vm.responseFromServer = response.data; }); } DBの特定のブログアイテムのIDに変更するにはどうすればよいですか? –

関連する問題