Проблема с использованием $ _GET [‘id’] для получения идентификатора из маршрута (Angular Site)

У меня ошибка, когда он не отправляет идентификатор на страницу с $ _GET [‘id’] (# / post? Id = 1)

Я получаю следующую ошибку:

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

Смотрите GitHub: https://github.com/liamstewart23/LSPortfolio

У меня есть страница блога. Список блогов сообщений работает отлично.

Проблема в том, когда я пытаюсь отправить идентификатор на мою страницу сообщений:

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 (Вызывается в init.php с require_once)

<?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 me@lstew.com";
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

Решение

Так что вам нужно сделать, это сделать $http запрос или ajax-запрос при взаимодействии со сценариями на стороне сервера, такими как PHP.

Angular на стороне клиента и НЕ будет анализировать файлы PHP. Ты можешь использовать $_GET если вам нравится и сделать запрос, как

$http.get('http://some.url?id=someId') или я рекомендую использовать $_POST

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

Вот как сделать HTTP-запрос на верхнем уровне. Вы должны знать, когда 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-файлы в качестве наших шаблонов. Вы хотите, чтобы файлы на стороне клиента и на стороне сервера были отделены. Ваше угловое приложение будет отправлять HTTP (ajax) запросы к вашим файлам PHP.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector