У меня ошибка, когда он не отправляет идентификатор на страницу с $ _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 [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);
}
?>
Так что вам нужно сделать, это сделать $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.
Других решений пока нет …