POST-GET会话变量(javascript-php)-javascript采用上一个变量但不是最后创建的

时间:2017-12-23 15:37:56

标签: javascript php session

从选定的值(来自表单)我创建一个变量(var parcela)。

var parcela;
$(document).ready(function(){
    parcela = localStorage.getItem("parcela");
    if (parcela !== '') {
        $('#parcela').val(parcela);
    }

    $("#parcela").on('change',function() {
        selectBoxVal_1 = $('#parcela').val();
        if (typeof(Storage) !== "undefined") {
            localStorage.setItem("parcela", selectBoxVal_1);
        } else {
            alert('Sorry! No Web Storage support..');
        }
        location.reload();
    });
});

从创建的变量(parcela)中,我在PHP中创建一个会话变量。

$.post("phpscripts/session.php", {"parc_id": parcela});

PHP(session.php)

<?php
session_start();

$parcela = $_POST["parc_id"]; 
$parcela_int = (int)$parcela;

if($_POST){
    $_SESSION['parcela_id'] = $parcela_int;
}
?>

之后,创建的会话变量催促另一个PHP脚本

query.php

<?php
session_start();
require("common.php");
$user_id = htmlentities($_SESSION['user']['id_korisnika']);

$parc = $_SESSION['parcela_id'];

try
{  
$stmt = $db->prepare("SELECT y_cent, x_cent FROM parcele WHERE id_korisnika='$user_id' AND id_parcele='$parc' ");
$stmt->execute();
}
catch(PDOException $ex)
{
    die("Failed to run query: " . $ex->getMessage());
}

$rows = $stmt->fetchAll();
....

这一切都很完美!

但是,当我在javascript中使用query(query.php)调用php脚本时,会出现问题。 JS采用先前的会话变量而不是最后选择的。

$.ajax({
    url: 'phpscripts/query.php',
    type: 'GET',
    success : function(data) {
      chartData = data;
          //console.log(chartData);
...

有谁知道问题是什么?我试了两天才解决这个问题......

注意:javascript代码包含在一个脚本中。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我不得不提取部分调用php脚本的javascript代码到一个单独的脚本中。我用jQuery getScript() Method调用了新的JS脚本。

谢谢@knets。