2016-06-07 15 views
0

Ich versuche, eine Variable mit AJAX GET-Methode zu senden, aber egal, was ich mache, wird es nicht gesendet. Die PHP-Datei gibt immer 3 zurück, was bedeutet, dass die Variable q niemals in der PHP-Datei empfangen wurde.GET-Variable wird nicht über AJAX-Aufruf gesendet

<script type="text/javascript"> 
    function myonclickhandler(t) { 
     var session = " <?php echo ($_SESSION['Username']); ?> "; 
     if(!(session==null)) 
     { 
      var val = t.value; 
      if (t.checked) { 

       var xmlhttp = new XMLHttpRequest(); 
       xmlhttp.onreadystatechange = function() { 
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
         var show = xmlhttp.responseText; 

         if(show==3) 
         { 
          alert(show); 
         } 
        } 
       }; 

       xmlhttp.open("GET", "<?php echo site_url('Buyer_controller/ajax_cart_load?q='); ?>"+ 129, true); 
       xmlhttp.send(); 

      } 

     } 
    } 
</script> 

Buyer_controller/ajax_cart_load

public function ajax_cart_load() 
    { 
     $this->load->helper('form'); 
     $this->load->model("Cart_model", "cartm"); 

     if(isset($_REQUEST["q"])) 
     { 
      $check = $_REQUEST["q"]; 

      $result = $this->cartm->populate_cart($check); 
      $val = $result->value; 
      $name= $result->Brand." Gift Card"; 
      $quantity= $result->Quantity; 

      $data2 = array(
       'id' => $check, 
       'qty' => 1, 
       'price' => $val, 
       'name' => $name, 
       'options' => array('Quantity' => $quantity, 'PDID' => $check) 
      ); 

      if($this->cart->insert($data2)) 
      { 
       echo 1; 
      } 
      else 
      { 
       echo 0; 
      } 


     } 
     else 
     { 
      echo 3; 
     } 

    } 
+0

Auf der Registerkarte Netzwerk der Entwicklerkonsole des Browsers können Sie die Anfrage sehen. Wie lautet die URL dieser Anfrage? –

+0

Versuchen Sie es als xmlhttp.send (null); – Viney

+0

Sergey, die URL in der Entwicklerkonsole des Browsers ist "http: //localhost/emailgifts/index.php?/Buyer_controller/ajax_cart_load? Q = 129" – Ghias

Antwort

0

Es stellt sich heraus, dass der Name der Variablen in $_REQUEST war nicht "q", sondern "/ Buyer_controller/ajax_cart_load? Q". Und der Name der Variablen in $_GET war "q". Also habe ich einfach $_GET in der PHP-Datei anstelle von $_REQUEST verwendet und es funktionierte wie ein Zauber. :)

Verwandte Themen