<div class="click_suite" data-id = "<?php echo $id_news?>" >lire la suite1</div>
[javascript]$(".click_suite").on("click",function () {
<?php
// if($.trim(suite) == '')
// {
// requête ajax + code accordéon
// }
// else
// {
// uniquement code accordéon
// }
/* ICI JE SAIS PAS RECUPERER LES DONNEES */
?>
News.php
<div class="infoMaj">
<?php
$news = array();
$query=$cnx->prepare('SELECT COUNT(news_id) AS Nbnews FROM t_news');
$query->execute();
$data0=$query->fetch();
//pour le pagination
$totalDesMessages = $data0['Nbnews'];
$nombreDeMessagesParPage = 10;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
//Nombre de pages
$page = (isset($_GET['page']))?intval($_GET['page']):1;
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
// fin pagination
$query=$cnx->prepare('SELECT
news_id,
news_title,
news_content,
news_date,
news_icon
FROM t_news
ORDER BY news_id DESC
LIMIT :premier, :nombre');
$query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT);
$query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT);
$query->execute();
if ($query->rowCount()<1)
{
$news = 'Aucune nouvelle actuelement!';
}
else
{
while ($data=$query->fetch(PDO::FETCH_OBJ)){
$news_content = parseZCode($data->news_content);
$extrait = parseZCode(substr($data->news_content, 0,96));
// Trouver le dernier espace juste apres le dernier mot de $extrait
$espace = strrpos($extrait,' ');
?>
<div class="bloc">
<div class="infos-news">
<img class="title-news" src="<?php echo $data->news_icon; ?>" alt=""/>
<span class="title-news"><?php echo parseZCode($data->news_title); ?></span>
<small><?php echo changedateusfr($data->news_date); ?></small>
</div>
<div class="infos-news">
<?php
// je pense qu'ici il faut modifier le code mais je ne sais pas trop
if (substr_count($news_content, '<br />') >= 2) {
?>
<div class="extrait"><?php echo $extrait; ?> ...</div>
<div class="click_suite" data-id = "<?php echo $data->news_id?>">lire la suite</div>
<div class="suite"><p><?php echo $news_content; ?></p></div>
<?php
}
if (substr_count($news_content, '<br />') <= 2) {
?>
<div ><p><?php echo $news_content; ?></p></div>
<?php
}
?>
</div>
</div>
<?php
}
$query->CloseCursor();
}
echo get_list_page($page, $nombreDePages, 'accueil');
?>
</div>
En fait j'ai compris comment passer les arguments d'une page à l'autre, mais maintenant je ne sais pas comment agir avec.
header('Content-type: text/html; charset=UTF-8');
// récupération du post 'id_post' envoyé par la requête ajax (intval pour sécuriser et caster en entier)
$id = isset($_POST['id_post'])? intval($_POST['id_post']) : null;
//...
$sql = "SELECT news_content FROM t_news WHERE news_id = ".$id;
// et tu affiche le résultat de la requête avec un echo (comme pour afficher le texte)
C'est tout.
trim avec jquery c'est la même chose qu'avec php, ça supprime les espace vides de début et de fin.Je vais tester ceci, merci beaucoup
En tout cas ça avance ^^
Au fait que signifie $.trim(suite)?
Merci
Cordialement
<?php
if (substr_count($news_content, '<br />') >= 2) {
?>
<div class="extrait"><?php echo $extrait; ?> ...</div>
<div class="click_suite" data-id = "<?php echo $data->news_id?>">lire la suite</div>
<div class="suite"><p><?php echo $news_content; ?></p></div>
<?php
}
if (substr_count($news_content, '<br />') <= 2) {
?>
<div ><p><?php echo $news_content; ?></p></div>
<?php
}
?>
Merci beaucoup<div class="infoMaj">
<?php
$news = array();
$query=$cnx->prepare('SELECT COUNT(news_id) AS Nbnews FROM t_news');
$query->execute();
$data0=$query->fetch();
//pour le pagination
$totalDesMessages = $data0['Nbnews'];
$nombreDeMessagesParPage = 10;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
//Nombre de pages
$page = (isset($_GET['page']))?intval($_GET['page']):1;
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
// fin pagination
$query=$cnx->prepare('SELECT
news_id,
news_title,
news_content,
news_date,
news_icon
FROM t_news
ORDER BY news_id DESC
LIMIT :premier, :nombre');
$query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT);
$query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT);
$query->execute();
if ($query->rowCount()<1)
{
$news = 'Aucune nouvelle actuelement!';
}
else
{
while ($data=$query->fetch(PDO::FETCH_OBJ)){
$news_content = parseZCode($data->news_content);
$extrait = parseZCode(substr($data->news_content, 0,96));
// Trouver le dernier espace juste apres le dernier mot de $extrait
$espace = strrpos($extrait,' ');
?>
<div class="bloc">
<div class="infos-news">
<img class="title-news" src="<?php echo $data->news_icon; ?>" alt=""/>
<span class="title-news"><?php echo parseZCode($data->news_title); ?></span>
<small><?php echo changedateusfr($data->news_date); ?></small>
</div>
<div class="infos-news">
<?php
if (substr_count($news_content, '<br />') >= 2) {
?>
<div class="extrait"><?php echo $extrait; ?> ...</div>
<div class="click_suite" data-id = "<?php echo $data->news_id?>">lire la suite</div>
<div class="suite"><p><?php echo $news_content; ?></p></div>
<?php
}
if (substr_count($news_content, '<br />') <= 2) {
?>
<div><p><?php echo $news_content; ?></p></div>
<?php
}
?>
</div>
</div>
<?php
}
$query->CloseCursor();
}
echo get_list_page($page, $nombreDePages, 'accueil');
?>
</div>
Merci!
<div class="click_suite" data-id = "<?php echo $id_news?>" >lire la suite1</div>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<script src="Scripts/jquery.js" type="text/javascript"></script>
<script>
$(function()
{
var showText='Lire la suite';
var hideText='Fermer';
var showColor='#0000ff';
var hideColor='#ff0000';
$(".click_suite").on("click",function () {
var id = $(this).attr("data-id");
var suite = $(this).next(".suite");
var that = $(this);
$.ajax({
dataType: "html",
type: "POST",
url: "destination_fichier.php",// page php dans laquelle tu renvoies le contenu de la new avec un echo en fonction de la variable post "id_post" envoyée ci-dessous
data: 'id_post='+id,
success: function(result)//retour de requête
{
// on utilise result qui est le retour de la requête pour ensuite alimenter un div (ou autre traitement)
suite.html(result);
suite.toggle("slow",function(){
$(this).css("display") == "block" ? that.text(hideText).css('color',hideColor) : that.text(showText).css('color',showColor);
});
that.prev(".extrait").toggle("fast");
}
});
})
})
</script>
<style type="text/css">
.suite {
display : none;
}
.click_suite {
cursor:pointer;
text-decoration:underline;
}
</style>
</head>
<body>
<div class="extrait">voici le premier paragraphe de ma news1 ... </div>
<div class="click_suite" data-id="1" >lire la suite</div>
<div class="suite"></div>
<div class="extrait">voici le premier paragraphe de ma news2 ... </div>
<div class="click_suite" data-id="2">lire la suite</div>
<div class="suite"></div>
<div class="extrait">voici le premier paragraphe de ma news3 ... </div>
<div class="click_suite" data-id="3">lire la suite</div>
<div class="suite"></div>
</body>
</html>
<?php
header('Content-type: text/html; charset=UTF-8');
// récupération du post 'id_post' envoyé par la requête ajax (intval pour sécuriser et caster en entier)
$id = isset($_POST['id_post'])? intval($_POST['id_post']) : null;
if ($id==1) echo 'premier paragraphe texte suite';
else if ($id==2) echo 'second paragraphe texte suite';
else if ($id==3) echo 'troisième paragraphe texte suite';
?>
Est-ce que cela fonctionne ? Chez moi oui.<div class="infoMaj">
<?php
$news = array();
$query=$cnx->prepare('SELECT COUNT(news_id) AS Nbnews FROM t_news');
$query->execute();
$data0=$query->fetch();
//pour le pagination
$totalDesMessages = $data0['Nbnews'];
$nombreDeMessagesParPage = 10;
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
//Nombre de pages
$page = (isset($_GET['page']))?intval($_GET['page']):1;
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
// fin pagination
$query=$cnx->prepare('SELECT
news_id,
news_title,
news_content,
news_date,
news_icon
FROM t_news
ORDER BY news_id DESC
LIMIT :premier, :nombre');
$query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT);
$query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT);
$query->execute();
if ($query->rowCount()<1)
{
$news = 'Aucune nouvelle actuelement!';
}
else
{
while ($data=$query->fetch(PDO::FETCH_OBJ)){
$news_content = parseZCode($data->news_content);
$extrait = parseZCode(substr($data->news_content, 0,96));
// Trouver le dernier espace juste apres le dernier mot de $extrait
$espace = strrpos($extrait,' ');
?>
<div class="bloc">
<div class="infos-news">
<img class="title-news" src="<?php echo $data->news_icon; ?>" alt=""/>
<span class="title-news"><?php echo parseZCode($data->news_title); ?></span>
<small><?php echo changedateusfr($data->news_date); ?></small>
</div>
<div class="infos-news">
<?php
if (substr_count($news_content, '<br />') >= 2) {
?>
<div class="extrait"><?php echo $extrait; ?> ...</div>
<div class="click_suite" data-id = "<?php echo $data->news_id?>">lire la suite</div>
<div class="suite"></div>
<?php
}
if (substr_count($news_content, '<br />') <= 2) {
?>
<div><p><?php echo $news_content; ?></p></div>
<?php
}
?>
</div>
</div>
<?php
}
$query->CloseCursor();
}
echo get_list_page($page, $nombreDePages, 'accueil');
?>
</div>
effet.js<?php
header('Content-type: text/html; charset=UTF-8');
include ('../conf/contants.php');
include ('../conf/conf.php');
include ('../inc/function.php');
include ('../inc/function_sql.php');
include ('../inc/mcode.php');
include ('../inc/ariane.php');
// récupération du post 'id_post' envoyé par la requête ajax (intval pour sécuriser et caster en entier)
$id = isset($_POST['id_post'])? intval($_POST['id_post']) : null;
//...
$query=$cnx->prepare('SELECT
news_content
FROM t_news
WHERE news_id = :id');
$query->bindValue(':id',(int) $id,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch(PDO::FETCH_OBJ);
echo parseZCode($data->news_content);
// et tu affiche le résultat de la requête avec un echo (comme si tu voulais afficher le texte)
?>
au passage, on peux pas faire un header au lieu de faire des includes pour récupérer les pages de confs, et si oui, comment tu le ferait?
Code : Tout sélectionner
include ('../conf/contants.php');
include ('../conf/conf.php');
include ('../inc/function.php');
include ('../inc/function_sql.php');
include ('../inc/mcode.php');
include ('../inc/ariane.php');
?>
<div class="bloc">
<div class="infos-news">
<img class="title-news" src="<?php echo $data->news_icon; ?>" alt=""/>
<span class="title-news"><?php echo parseZCode($data->news_title); ?></span>
<small><?php echo changedateusfr($data->news_date); ?></small>
</div>
<?php
if (substr_count($news_content, '<br />') >= 2) {
?>
<div class="click_suite" data-id = "<?php echo $data->news_id; ?>">Lire la news</div>
<div class="suite"></div>
<?php
}
if (substr_count($news_content, '<br />') <= 2) {
?>
<div><p><?php echo $news_content; ?></p></div>
<?php
}
?>
</div>
<?php
}
newsz.php (la page de destination) (si tu peux me répondre par rapport au header pour les includes demandé plus haut stp?)
<?php
header('Content-type: text/html; charset=UTF-8');
include ('../conf/contants.php');
include ('../conf/conf.php');
include ('../inc/function.php');
include ('../inc/function_sql.php');
include ('../inc/mcode.php');
include ('../inc/ariane.php');
// récupération du post 'id_post' envoyé par la requête ajax (intval pour sécuriser et caster en entier)
$id = isset($_POST['id_post'])? intval($_POST['id_post']) : null;
//...
$query=$cnx->prepare('SELECT
news_content
FROM t_news
WHERE news_id = :id');
$query->bindValue(':id',(int) $id,PDO::PARAM_INT);
$query->execute();
$data=$query->fetch(PDO::FETCH_OBJ);
echo parseZCode($data->news_content);
// et tu affiche le résultat de la requête avec un echo (comme si tu voulais afficher le texte)
?>
Merci beaucoup
Non cela n'a rien à voir, ton code est bien comme cela. Eventuellement tu peux remplacer un include par un require ou vice versa (cf la doc php pour voir la différence), mais un include n'a rien à voir avec un header.si tu peux me répondre par rapport au header pour les includes demandé plus haut stp