8731 sujets

Développement web côté serveur, CMS

Bonjour,

Je voudrais que quand quelqu’un clique sur un lien, que ma div du centre puisse recharger avec le contenu de ce lien. je voulais pas recharger la page entière .

Voici le code de la div centre
 <!-- DIV CENTRE  -->
  <div id="centre">
  <p class="Txt_Bienvenue">
  Bienvenue sur le site Arts-africains</p>
  <p class="Txt_Vous">
  Vous aimez l&rsquo;Afrique et souhaitez décorer votre maison d&rsquo;une façon hors de l&rsquo;ordinaire. Vous êtes ouvert à une autre culture. Vous trouverez votre bonheur à un bon prix (  objets africains, masques africains, statues africaines, tapis en raphia, Tissus africains... ) mais également des explications sur l&rsquo;origine de certains objets.</p>
  <p class="Txt_Bonne">
  Bonne visite...</p>
    <!-- DIAPORAMA DU CENTRE -->
   <div id="slider1">
                    <ul id="slider1Content">
                        <li class="slider1Image">
                            <img src="flash/diaporama centre/image/1.JPG" />
                    <span class="texte_right"><strong>Bienvenue</strong><br /></span>
                    </li>
                        <li class="slider1Image">
                            <img src="flash/diaporama centre/image/2.JPG" />
                    <span class="texte_right"><strong>Bienvenue</strong><br /></span>
                    </li>
                        <li class="slider1Image">
                            <img src="flash/diaporama centre/image/3.JPG" />
                    <span class="texte_right"><strong>Bienvenue</strong><br /></span>
                    </li>
                        <li class="slider1Image">
                            <img src="flash/diaporama centre/image/4.JPG" />
                    <span class="texte_right"><strong>Bienvenue</strong><br /></span>
                    </li>
                        <li class="slider1Image">
                            <img src="flash/diaporama centre/image/5.JPG" />
                    <span class="texte_right"><strong>Bienvenue</strong><br /></span>
                    
                    <li class="slider1Image">
                            <img src="flash/diaporama centre/image/6.JPG" />
                    <span class="texte_right"><strong>Bienvenue</strong><br /></span>
                      </li>
    </li><div class="clear slider1Image"></div></ul></div><br/>
 <!-- FIN DU DIAPORAMA CENTRE  -->
 <!-- TABLEAU DES NOUVEAUTES -->
 <img src="image/decoupe/nouv_accueil.jpg" alt="nouveaute" width="540" height="786" class="nouveaute" /></div>
<!-- FIN TABLEAU DES NOUVEAUTES -->


voici le code du contenu du lien
<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
   http://www.oscommerce.com
 

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

  $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');
?>

  <div class="contentText">

<?php
  if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>

    <div>
      <span style="float: right;"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></span>

      <span><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></span>
    </div>

    <br />

<?php
  }

  $prod_list_contents = '<div class="ui-widget infoBoxContainer">' .
                        '  <div class="ui-widget-header ui-corner-top infoBoxHeading">' .
                        '    <table border="0" width="100%" cellspacing="0" cellpadding="2" class="productListingHeader">' .
                        '      <tr>';

  for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
    $lc_align = '';

    switch ($column_list[$col]) {
      case 'PRODUCT_LIST_MODEL':
        $lc_text = TABLE_HEADING_MODEL;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_NAME':
        $lc_text = TABLE_HEADING_PRODUCTS;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_MANUFACTURER':
        $lc_text = TABLE_HEADING_MANUFACTURER;
        $lc_align = '';
        break;
      case 'PRODUCT_LIST_PRICE':
        $lc_text = TABLE_HEADING_PRICE;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_QUANTITY':
        $lc_text = TABLE_HEADING_QUANTITY;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_WEIGHT':
        $lc_text = TABLE_HEADING_WEIGHT;
        $lc_align = 'right';
        break;
      case 'PRODUCT_LIST_IMAGE':
        $lc_text = TABLE_HEADING_IMAGE;
        $lc_align = 'center';
        break;
      case 'PRODUCT_LIST_BUY_NOW':
        $lc_text = TABLE_HEADING_BUY_NOW;
        $lc_align = 'center';
        break;
    }

    if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) {
      $lc_text = tep_create_sort_heading($HTTP_GET_VARS['sort'], $col+1, $lc_text);
    }

    $prod_list_contents .= '        <td' . (tep_not_null($lc_align) ? ' align="' . $lc_align . '"' : '') . '>' . $lc_text . '</td>';
  }

  $prod_list_contents .= '      </tr>' .
                         '    </table>' .
                         '  </div>';

  if ($listing_split->number_of_rows > 0) {
    $rows = 0;
    $listing_query = tep_db_query($listing_split->sql_query);

    $prod_list_contents .= '  <div class="ui-widget-content ui-corner-bottom productListTable">' .
                           '    <table border="0" width="100%" cellspacing="0" cellpadding="2" class="productListingData">';

    while ($listing = tep_db_fetch_array($listing_query)) {
      $rows++;

      $prod_list_contents .= '      <tr>';

      for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
        switch ($column_list[$col]) {
          case 'PRODUCT_LIST_MODEL':
            $prod_list_contents .= '        <td>' . $listing['products_model'] . '</td>';
            break;
          case 'PRODUCT_LIST_NAME':
            if (isset($HTTP_GET_VARS['manufacturers_id']) && tep_not_null($HTTP_GET_VARS['manufacturers_id'])) {
              $prod_list_contents .= '        <td><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></td>';
            } else {
              $prod_list_contents .= '        <td><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . $listing['products_name'] . '</a></td>';
            }
            break;
          case 'PRODUCT_LIST_MANUFACTURER':
            $prod_list_contents .= '        <td><a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a></td>';
            break;
          case 'PRODUCT_LIST_PRICE':
            if (tep_not_null($listing['specials_new_products_price'])) {
              $prod_list_contents .= '        <td align="right"><del>' .  $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</del>&nbsp;&nbsp;<span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span></td>';
            } else {
              $prod_list_contents .= '        <td align="right">' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</td>';
            }
            break;
          case 'PRODUCT_LIST_QUANTITY':
            $prod_list_contents .= '        <td align="right">' . $listing['products_quantity'] . '</td>';
            break;
          case 'PRODUCT_LIST_WEIGHT':
            $prod_list_contents .= '        <td align="right">' . $listing['products_weight'] . '</td>';
            break;
          case 'PRODUCT_LIST_IMAGE':
            if (isset($HTTP_GET_VARS['manufacturers_id'])  && tep_not_null($HTTP_GET_VARS['manufacturers_id'])) {
              $prod_list_contents .= '        <td align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td>';
            } else {
              $prod_list_contents .= '        <td align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td>';
            }
            break;
          case 'PRODUCT_LIST_BUY_NOW':
            $prod_list_contents .= '        <td align="center">' . tep_draw_button(IMAGE_BUTTON_BUY_NOW, 'cart', tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id'])) . '</td>';
            break;
        }
      }

      $prod_list_contents .= '      </tr>';
    }

    $prod_list_contents .= '    </table>' .
                           '  </div>' .
                           '</div>';

    echo $prod_list_contents;
  } else {
?>

    <p><?php echo TEXT_NO_PRODUCTS; ?></p>

<?php
  }

  if ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>

    <br />

    <div>
      <span style="float: right;"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></span>

      <span><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></span>
    </div>

<?php
  }
?>

  </div>




dans ma page index j'appelle la page product_listing par la fonction include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);

Merci d'avance.
Smiley smile
Modifié par Ciranox9 (22 Apr 2011 - 09:47)
Bonjour,
Ce que tu décris c' est de l'AJAX
Mais il est difficile de comprendre les deux pages que tu postes et leur articulation
Je supposes que le premier PHP est la page principale.
Peux tu donner le code complet, ou l'URL du site.
Salut Christel,

Excuse moi de répondre à la question avec un si grand retard.

Dans ma page index j'ai une liste de liens qui s'affiche grâce au fichier << bm_categories.php >>, si une personne clique sur un de ces lien, il y'aura un contenu qui va s'afficher dans la page index, ce contenue vient du fichier << product_listing.php>> ( à noté que le contenue de ces liens est variable selon la catégories, si une personnes clique sur le lien masque il y'aura une liste de masque qui va s'afficher ).

Ce que moi je voudrais,c'est que quand la personne clique sur un de ces liens , que le contenu qui vient du fichier << product_listing.php>> puisse s'afficher dans la div centre de mon site , pour l'instant quand quelqu'un clique sur un ces liens le contenue qui vient du fichier << product_listing.php>> et se superposent sur le site.

Voici le code complet de la page index.php: https://gist.github.com/922331



Merci d'avance et à bientôt. Smiley cligne
Bonsoir,

pour ton probleme, je te conseille jQuery :



    $('a').click(function(){ // event click sur un lien

          var req = $.ajax({ 
            url: $(this).attr('href'), //
            global: false,
            type: "POST",
            data: ({id_page : $("input:checked").attr('id') // envoie des données en json
                    }),
            dataType: "html",
            async:true 
          });

          req.success(function(msg){ // récuperation du resultat de ma page PHP

                $('#block').empty(); // je vide le div qui me sert de conteneur

                $('#block').append(msg); // j'introduit mon resultat
          });

          return false; // pour eviter l'ouverture de ma page PHP

    });


si besoin d'infos, n'hesite pas à demander Smiley smile
Salut Silentauben,

Merci de m'avoir répondu. Hier,je suis arrivé à résoudre mon problème.Je garde quand même ton code pour mon prochain site.

Merci encore. Smiley smile
À la prochaine.