Home > Back-end >  How to send php variable to AJAX
How to send php variable to AJAX

Time:08-07

I need to retrieve session variable data inside an ajax call. Here is my try.

$('#update').click(function(){  
            
           
           var number = $('#num').val();
           var curuser = <?php echo $_SESSION['userName'];?>
                

                if( number != '' && number.length==9 )
                {
                    
                     $.ajax({
                          data:{number:number},
                          success:function(data){ 
                   
                            $('#number_add').val(number); 
                            $('#new_data_Modal').modal('show'); 
                       }   
                          
                     });



                }
                
                   
      });

Seems like var curuser = <?php echo $_SESSION['userName'];?> prevents opening my model(new_data_Modal) after button(update) click. When I remove that line it works fine(Model is opening as previous).

But alert("<?php echo $_SESSION['userName'];?>") is working and it prints the session variable as well.

Can someone show me where I made the wrong?

CodePudding user response:

If this is a string you need to wrap the variable in quotes:

var curuser = '<?php echo $_SESSION['userName'];?>';

otherwise, when PHP code is executed you will get a syntax error:

var curuser = John

You can check the source code of the generate HTML to see what is the output.

NOTE: Your javascript code needs to be a PHP file with a PHP extension, it can be your HTML or JavaScript file. You can use JS file as PHP script in script tag <script src="code.php"></script>

CodePudding user response:

If you're outputting JavaScript values from your php script you should use json_encode, that way any data type will work and there is no risk of your code breaking if you data has a quote or new line in it.

var curuser = <?php echo json_encode($_SESSION['userName']);?>
  • Related