2016-09-16 1 views
0

J'ai ce formulaire HTML qui envoie des valeurs d'entrée en utilisant jquery ajax to php. Le processus s'est bien passé, mais seulement si je le vois quand je clique droit> inspecter élément> réseau> en-tête. Malheureusement, la vraie page reste immobile.HTML Formulaire d'envoi de valeurs avec jQuery Ajax à PHP

Y at-il de toute façon je l'ai fait mal? aidez s'il vous plaît. Merci à tous, j'apprécie vraiment l'aide.

  • i na pas inclure les codes complets, parce que je pense que je l'ai foiré sur la ajax jquery, car apparemment le processus est bien passé et a montré un résultat correct

HTML FORMULAIRE

<div class="product-filter-type"> 
        <input type="radio" class="checkFilter" id="filterAllTV" name="typeTV" value="AllTV" checked><label class="filterType" for="filterAllTV">All TV</label><br/> 
        <input type="radio" class="checkFilter" id="filterFHDTV" name="typeTV" value="FHD"><label class="filterType" for="filterFHDTV">FHD/HD</label><br/> 
        <input type="radio" class="checkFilter" id="filter4K" name="typeTV" value="FOURK"><label class="filterType" for="filter4K">4K</label> 
       </div> 

JAVASCRIPT/JQUERY/AJAX

var type; 


    $('input[name="typeTV"]').click(function(){ 
     if ($(this).is(':checked')) 
     { 
      type = $('input[name="typeTV"]:checked').val(); 
      sendType(type); 
     } 
    }); 



function sendType(type){ 

    $.ajax({ 
     type: 'POST', 
     url: "{{ base_url() }}product", 
     data: { 
      'type' : type 
     }, 
     success: {} 
    }); 

PHP (FuelPHP)

public function action_product() { 

    $this->set_meta_info($this->_meta_slug); 

    $input_data = \Input::param(); 

    if(count($input_data) > 0){ 

     $this->_filter($input_data); 

    }else{ 

     $this->_data_template['product'] = \Product\Productutil::get_product_data(); 
     $this->_data_template['AllTV'] = 'checked'; 

    } 

    return \Response::forge(\View::forge('pages::frontend/product_list.twig', $this->_data_template, FALSE)); 
} 

private function _filter($input_data) { 

    $this->set_meta_info($this->_meta_slug); 

    if (count($input_data) > 0) { 

     $type  = isset($input_data['type']) ? $input_data['type'] : null; 


     if ($type){ 

      $this->_data_template['product'] = \Pages\Filterutil::get_type_product($type); 
      $this->_data_template[$type] = 'checked'; 

     }elseif { ... } 

     return $this->_data_template; 
    } 

} 
+2

Qu'attendez-vous? Tout votre code envoie la requête AJAX et ne fait rien dans le rappel, donc rien dans l'interface utilisateur ne change. –

+0

Définir votre question? –

+0

Dans vos outils de développement, vous devriez voir une requête xhr, la page principale ne change pas ses en-têtes – madalinivascu

Répondre

0

Ok je l'ai eu.

J'ai ajouté

$this->_filter($input_data); 
     return json_encode($this->_data_template['product']); 

de la part de PHP et ajouté,

success: function (response) { 

      var json = $.parseJSON(response); 

      for (idx= 0; idx< json.length; idx++) { 

       .... 

      } 
     } 
    }); 

Merci à tous, apprécier. Comment fermer cette question?