Zaid Butt
Zaid Butt

Reputation: 35

Get Javascript Variable value in PHP variable

    var val;
    $('select').on('change', function() {
        alert( this.value );
        val = this.value;
    })
    
    <?php
echo $variable = "<script>document.write(val)</script>";
?>
<select>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="4">four</option>

</select>

I want to get the value of the selected box and save it in a PHP variable. I want to save and echo val variable. Please help

Upvotes: 3

Views: 11794

Answers (2)

Shafiqul Islam
Shafiqul Islam

Reputation: 5690

use this code for use variable

  <?php
  session_start();
  echo $_SESSION['php_value'];
  ?>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script>
    function getValue(obj){
    var value = obj.value;
    $.ajax({
        type:"POST",
        url: 'edit.php',
        data: "val="+ value,
        dataType: 'text',
        async: false,
        cache: false,
        success: function ( result )  {
            window.location.reload();
        }
    });
}

</script>

<select onchange="getValue(this)">
<option value="1" <?php if($_SESSION['php_value'] == 1) echo 'selected';?>>One</option>
<option value="2" <?php if($_SESSION['php_value'] == 2) echo 'selected';?>>Two</option>
<option value="3" <?php if($_SESSION['php_value'] == 3) echo 'selected';?>>Three</option>
<option value="4" <?php if($_SESSION['php_value'] == 4) echo 'selected';?>>four</option>

</select>

then create edit.php file

<?php
 session_start();
 $_SESSION['php_value'] = $_REQUEST['val'];
?>

Upvotes: 1

Toxide82
Toxide82

Reputation: 277

Ajax can do this. Google it, and check out api.jquery.com and look at the ajax functions, .ajax(), .post(), .get(), .load(), etc.

As for your specific question, here is what you would do:

//Javascript file

$.post('my_ajax_receiver.php', 'val=' + $(this).val(), function(response) {
  alert(response);
  });

});

//PHP file my_ajax_receiver.php
<?php
   $value = $_POST['val'];
   echo "$value";
?>

Upvotes: 0

Related Questions