简体   繁体   中英

Passing javascript variables to another php page

I have a select list where in using javascript i get the selected values i want this selected values to pass through php file init.php so that i can use those variables in mysql query. my javascript code is as follows:

                  $(document).ready(function(){ 

                 var e = document.getElementById("product");
                  var pro = e.options[e.selectedIndex].text;
                  alert(pro);

                 });

                 $('select').change(function(){ 
                  var e = document.getElementById("city");
                  var cit = e.options[e.selectedIndex].text;
                  alert(cit);

I have used ajax to send variables to init.php. my ajax code below is not working,can anyone tell whats the issue in this code:

                       $.ajax({
                         url: 'init.php',
                         type: 'POST',
                         data: { x:'cit',y:'pro' },
                         success: function(data) {
                           console.log(data);

                              }
                            });

and in init.php i have written :

<?php
$var1 = $_POST['y'];
$var2 = $_POST['x'];
$result = "Select amount from ". _DB_PREFIX_ ."demo_detail where product =    '". $var1 ."' and city = '" . $var2 . "' ";
//echo json_encode($result);

Can you alter the url line to include the / to make sure that you're referring init.php relative to the root of your directory?

So it should look like this:

$.ajax({
   url: '/init.php',
   type: 'POST',
   data: { x:'cit',y:'pro' },
   success: function(data) {
     console.log(data);

       }
   });

I don't know enough to say for sure but there's a chance that AJAX is making a POST request to the wrong URL.

Have you tried to pass absolute as well as relative path in url. What I mean is have you tried using:

url:'localhost:xxxx/myapp/init.php'

or

url:'/init.php'

If you're passing variables into the data parameter in Ajax, they don't have to be in quotes.

$.ajax({
        url: 'init.php',
        type: 'POST',
        data: { x: cit, y: pro },
        success: function(data) {
             console.log(data);
        }
 });

Use Query String. HTML5's Session Storage can also help you.

Try to replace your script code with following and see if it makes a difference

$(document).ready(function(){ 
    $('select').change(function(){
        var e = document.getElementById("product");
        var pro = e.options[e.selectedIndex].text;
        alert(pro);

        var e = document.getElementById("city");
        var cit = e.options[e.selectedIndex].text;
        alert(cit);

        $.ajax({
            type: 'POST',
            url: 'init.php',
            data: { x:'cit',y:'pro' },
            success: function(data) {
            console.log(data);
            }
        });
    });     
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM