Ajax POST到PHP var并返回

时间:2018-10-04 11:23:24

标签: php ajax

我正在开发一个Web应用程序,我想在其中将复选框值传递给PHP变量而不提交。因此,我正在使用Ajax传递值。

代码页1:

<div class="sliderWrapper">
     input type="checkbox" name="val1" id="val1" value="Value 1">
 </div>
 <div class="sliderWrapper">
     input type="checkbox" name="val2" id="val2" value="Value 2">
 </div>

 <p id="test"></p>

<script>
 $("input[type=checkbox]").on("change", function () {
        var ids = [];
        $('input[type=checkbox]:checked').each(function () {
            ids.push($(this).val());
        });
        $.ajax({
            url: "page2.php",
            type: "POST",
            async: true,
            cache: false,
            data: ({value: ids, semester}),
            dataType: "text",
            success: function (data) {
                //alert(data)
                $("p#test").html(data);
            }
        });
    });
 </script>

代码页2:

if(isset($_POST['value'])) {
    $values = $_POST['value'];

    foreach($values as $value){
        echo $value;
    }
}

因此我将值传递回HTML

标记,我想在第1页将其用作PHP变量。这可能吗?

1 个答案:

答案 0 :(得分:2)

否。

查看事件的顺序:

  1. 第1页PHP在服务器上运行
  2. 服务器将结果发送到浏览器
  3. 浏览器加载页面并运行Ajax
  4. 浏览器发出Ajax请求
  5. 浏览器得到响应

您不能在第1页中将响应用作PHP变量,因为:

  • PHP变量存在于服务器上,数据现在位于浏览器中
  • PHP脚本在第1步之后完成,因此该程序不再运行,并且没有地方放置变量

如果要对服务器上的数据进行处理,请在第2页上进行处理。(如果要共享逻辑,可以将函数放在其他PHP文件中,并在两个页面上include进行处理他们之间)。

如果要更改显示在浏览器中的内容,请执行以下操作:

  • 第2页返回确定应显示的内容所需的信息
  • 编写JavaScript来读取数据并对DOM进行所需的更改