繁体   English   中英

存储在 PHP 变量中的 AJAX 响应的一部分

[英]A part of AJAX response storing in PHP variable

我需要将一段数据存储到 PHP 变量中,该变量是通过输入框中的 AJAX 响应接收的。 我怎样才能做到这一点?

<script type="text/javascript">
  $(document).ready(function() {

    $("#user_id").change(function() {
      var id = $(this).val();
      var dataString = 'user_id='+ id;

      $.ajax({
        type: "POST",
        url: "wmat_details.php",
        data: dataString,
        cache: false,
        success: function(result) {
          var data = result.split(",");

          $('#name').val(data[0]);
          $('#email').val(data[1]);
          $('#ref_id').val(data[2]);
          $('#candidature_start').val(data[3]);
          $('#candidature_end').val(data[4]);
          $('#default_attempts').val(data[5]);
          $('#existing_complimentary').val(data[6]);
          $('#wmat_start').val(data[9]);
          $('#wmat_end').val(data[10]);
          $('#attempts_taken').val(data[11]);
        }
      });
    });
  });
</script>

如上面的代码所示,我想存储$('#attempts_taken').val(data[11]); 这个值到一个 PHP 变量。 任何见解表示赞赏。

不幸的是你不能。

PHP 是服务器端,而 jQuery (JS) 是客户端。 它们是两个独立的抽象层,仅在客户端调用服务器时交互。

我没有足够的信息来说明您需要对数据 [11] 做什么,但您似乎只有一种选择:对将操作数据 [11] 的 php 文件进行连续的 AJAX 调用。

连续的 AJAX 调用必须从第一个调用成功回调内部执行; 像这样:

success: function(result){
     // Your on success logic
     // ...
     // Prepare the object to send to the server
     var objData = {};
     objData.attemptsTaken = data[11];
     // Execute the second AJAX call to the server
     $.ajax({
         type: "POST",
         url: "second_call_destination_file.php",
         data: objData,
         success: function(result){
             // Do something on success
         },
         error: function(){
             // Do something on error
         },
         complete: function(){
             // Do something on complete (executed after success and error)
         }
}

您不能将 ajax 响应存储到 php 变量中。

方式1:

您可以进行另一个 ajax 调用。

方式2:

你可以设置会话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM