【问题标题】:Ajax 'POST' again after the data received is modified接收到的数据修改后再次Ajax 'POST'
【发布时间】:2023-04-11 06:53:01
【问题描述】:

我在 Ajax 发布后从后端获取数据,该数据将包含值列表。当用户从列表中选择一个值时,我希望它更新到我的对象并再次发布 ajax 调用。

我在这里面临的问题是我无法使用选择值再次发布,我只需要一个 ajax 调用就可以做到这一点。嵌套的 ajax 调用是不够的

var searchObject = {
  "research": "test"
}
$.ajax({
  method: method,
  data: JSON.stringify(searchObject), // while making next call the searchObject should have. "list":value of x in success
  contentType: "application/json",
  url: requestUrl
})
 .success(function(data) {
  var x = data.list2


}).error(function() {

});

【问题讨论】:

    标签: javascript jquery ajax object


    【解决方案1】:

    我认为你可以使用syn ajax请求而不是asyn请求。你可以从jquery apiJquery ajax看到它

    你可以试试这样的代码:

    var searchObject = {
      "research": "test"
    }
    let x = undefined;
    $.ajax({
      async:false,
      method: method,
      data: JSON.stringify(searchObject), // while making next call the searchObject should have. "list":value of x in success
      contentType: "application/json",
      url: requestUrl
    })
     .success(function(data) {
       x = data.list2
    
    
    }).error(function() {
    
    });
    
    //Another syn ajax post 
    $.ajax({
      async:false,
      method: method,
      data: JSON.stringify(x), // while making next call the searchObject should have. "list":value of x in success
      contentType: "application/json",
      url: requestUrl
    })
     .success(function(data) {
       console.log(data)
    
    }).error(function() {
    
    });

    【讨论】:

    • 我尝试了这种方法,但如前所述,我不想要两个 ajax 调用
    【解决方案2】:

    如果您将 POST 与 Ajax 一起使用,这应该会为您完成。只需创建一个文件并将其命名为 testing.php 并在输入字段中输入一个值,您将看到 ajax 成功将数据发送到后端。希望对您有所帮助!

    <?php
    
     $data = array();
      if(isset($_POST['research'])){
      $data = $_POST['research'];       
      echo json_encode($data);  
     die();      
     }
     ?>
     <html>
     <head>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
     </head>
    
     <body>
    
      <form>
        Enter value: <input type="text" id="someID"><br>
    <input value="submit" type="submit">
     </form>
       <p id="msg"><p/>
    
    <script type = "text/javascript">
    
    $("form").on("submit", function(e){
    
        e.preventDefault();
        var emailfield = $("#someID").val();
        var myText ='You entered: ' + emailfield;
    
        $.ajax({
            url: "testing.php",
            method: "POST",
            dataType: "json",
            data: {research: myText},
            success: function (result) {
                alert("result: " + result);
                $("#msg").html(result);
            },
            error: function (params) {
                alert("error");
            }
        });
        });
    
     </script>
    </body>
    </html>
    

    【讨论】:

    • 嘿,非常感谢您的调查。我的标准不同。我获取 POST 的数据,存储该值,可能在变量中并将其添加到对象并再次发布
    • @john 再次发布它,您可以简单地更新 mytext 变量的值,它应该为您发布数据。
    • 实际上这不起作用,因为在页面加载和选择页面刷新的每个过滤器时进行了 ajax 调用。请指教
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多