【问题标题】:POST data not passed in to $.ajax({ }POST 数据未传入 $.ajax({ }
【发布时间】:2014-05-30 10:40:56
【问题描述】:

我正在构建一个搜索框。似乎搜索文本没有传递给 $.ajax({

alert(val1); 有效,但 alert("step4 - working"); 未显示。如何解决这个问题?

<div class="imageSlots" id="imageSlots"></div>
<form action="" method="post">
        Search Word:         
         <input type="text" name="val1" id="val1" />
         <input type="button" value="Submit" id="btn" />
        </form>
      </div>

<script type="text/javascript">
        var val1 = $('#val1').val();
        $('#btn').click(function(e) {       
            e.preventDefault();
            alert(val1);
            $.ajax({
            alert("step4 - working");                   
                url: 'php/file1.php',
                type: 'POST',
                data: {'val1':val1},

                success: function(data, status) {
                    $("#imageSlots").html(data);

                }
            });
            $("#imageSlots").fadeOut("slow");
        });
    </script>

【问题讨论】:

  • 您不能只将函数调用 (alert()) 粘贴到对象声明 ({...}) 的中间。要调试您的 ajax 调用,请打开您的网络选项卡或使用 HTTP 嗅探器,例如 Fiddler2。
  • 粘贴到success,实际成功时会显示​​。
  • 使用浏览器控制台查找错误。加载此代码后,您会立即看到一个
  • 我在$.ajax({上方使用了console.log ();
  • @user3687622 不客气。如果您想在返回后输出警报(即使出现 404 等错误),只需添加一个 complete: function() { alert('we got an answer'); } 键即可。

标签: javascript jquery html ajax forms


【解决方案1】:

将您的代码更新为以下内容:

<script type="text/javascript">
        var val1 = $('#val1').val();
        $('#btn').click(function(e) {       
            e.preventDefault();
            alert(val1);
            $.ajax({
                url: 'php/file1.php',
                type: 'POST',
                data: {'val1':val1},                    
            success: function(data, status) {
                    alert("step4 - working");  
                    $("#imageSlots").html(data);

                }
            });
            $("#imageSlots").fadeOut("slow");
        });
    </script>

【讨论】:

  • 感谢 cpoDesign :) 成功了!因此它确认 POST 已成功传递。但是为什么 php 不读取数据呢? if( isset($_POST['val1']) ){
  • 在警报之前放置断点,在您的 javascript 中或使用提琴手,什么是响应或更好地向我们展示返回的结果示例。
【解决方案2】:

您有语法错误。您不能将 alert 放在对象文字内。把它移到上面。

【讨论】:

  • 谢谢。如何检查文本是否正在传递给$.ajax({
  • @user3687622 stackoverflow.com/questions/ask 另外,如果这解决了您的问题,请接受。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
相关资源
最近更新 更多