从AJAX输出中保存“$ data”中的值

时间:2013-09-24 09:29:07

标签: php ajax

只是想知道如何将值从“var vname”保存到“$ data”,以便我可以使用我的php中的值。假设这很容易,但我是新手:P

<script id="source" language="javascript" type="text/javascript">

        //Call the yourAjaxCall() function every 1000 millisecond
        setInterval("yourAjaxCall()",1000);
        function yourAjaxCall() 
      {
        //-----------------------------------------------------------------------
        // 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
        //-----------------------------------------------------------------------
        $.ajax({                                      
          url: 'api.php',                  //the script to call to get data          
          data: "",                        //you can insert url argumnets here to pass to api.php
                                           //for example "id=5&parent=6"
          dataType: 'json',                //data format
          success: function(data)          //on recieve of reply
          {
            var id = data[0];              //get id
            var vname = data[1];           //get name

            $data = vname; //HOW AND WHERE??????? :P
          }

        });
      };
</script>

/EDIT - want my var vname which is a color, to be placed in the style.
<body>
<div id="kvadrat1" style="width:200px; height:200px; position:relative; background-color:'HERE I WANT MY VALUE'">
</div>

非常适合快速回答! :)

6 个答案:

答案 0 :(得分:0)

请在此处阅读:Pass javascript variable to php with ajax and the result doesn't show anything

这将解释你使用PHP的javascript varaiables。 Zladuric的答案很棒。

答案 1 :(得分:0)

你无法在php中保存它。

您可以将其保存为HTML元素

如果你需要在php变量中使用ajax或头重定向将其发送到其他页面

答案 2 :(得分:0)

当用户加载页面时,PHP代码会执行一次。当用户在页面上时执行JS。这就是为什么不可能将JS生成的值绑定到PHP变量。

答案 3 :(得分:0)

  

您无法在加载页面时使用php代码或使用js。

     

javascript仅适用于浏览器库。 php之前只运行服务器   加载页面。

// you can
var name = "<?=echo $name?>";

//you CANT!
var name = "joe";

$name = name;

答案 4 :(得分:0)

对我而言,就像你只是想获取一个名字和一个ID,但无法想象为什么你需要每1000毫秒做一次 - 看起来好像很多数据请求都没有会改变吗?

就我个人而言,我建议您在加载页面之前在PHP中进行API调用,并且您可以像avalkab所说的那样var name = "<?=echo $name?>";,以便在页面加载后访问JavaScript中的变量。

应该可以使用

$data = json_decode(file_get_contents("api.php?id=5&parent=6")); // Specify or build query however you intended

如果您正在等待用户进行交互(onclick或其他)以调用您的javascript,那么如果您希望使用AJAX检索的数据来更改整个页面上的数据 - 您可能只想重新加载页面或修改你的AJAX要使用返回的数据吗?

编辑: 由于您正在尝试更改颜色,因此您只需将此行与jQuery一起使用

即可
$("#kvadrat1").css({"background-color": vname});

所以你的代码就是这样:

//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall() {
    //-----------------------------------------------------------------------
    // 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
    //-----------------------------------------------------------------------
    $.ajax({                                      
        url: 'api.php',                  //the script to call to get data          
        data: "",                        //you can insert url argumnets here to pass to api.php
                                       //for example "id=5&parent=6"
        dataType: 'json',                //data format
        success: function(data)          //on recieve of reply
        {
            var id = data[0];              //get id
            var vname = data[1];           //get name

            $("#kvadrat1").css({"background-color" : vname});
        }
    });
};

答案 5 :(得分:0)

你不能将它存储在php中,而不是你可以使用任何html元素来存储它

您可以使用$("#id").html(data[0]);

将数据保存在html元素中