【问题标题】:Send Data via AJAX and print result通过 AJAX 发送数据并打印结果
【发布时间】:2014-07-31 10:14:27
【问题描述】:

编辑 - 在我的网络开发上,它说请求已被取消,所以我在提交时添加了 return false。现在什么都没有发生

我正在尝试通过 ajax 向我的 PHP 发送一些数据,但它似乎不起作用。这是执行 AJAX 请求的 Javascript:

var textBox = document.getElementById("searchBox");
search.onsubmit = function() {
 return false;
 $.ajax({
    url: 'request.php',
    type: "POST",
    data: {text_box: textBox.value},
    success:function(data){
        alert(data);
    }
 });
};

然后是处理请求的 PHP:

echo $_POST['text_box'];

【问题讨论】:

  • 您能否说明您如何定义textBox 变量
  • 编辑添加文本框变量@Spokey

标签: javascript php jquery ajax


【解决方案1】:

试试这个代码:

$.ajax({
    url: '/full/path/to/request.php',
    type: "POST",
    data: {text_box: searchBox.value},
    success:function(data){
        alert(data);
    }
});

【讨论】:

  • 对不起,我刚刚意识到我的代码已经这样了,是不是因为我的 javascript 文件与 php 文件位于不同的文件夹中? @Olim-Saidov
  • 如果请求的 php 文件位于不同的文件夹中,您应该在 ajax 调用中指定正确的 url,即 url: '/full/path/to/request.php'
  • 好的,所以 js 文件位于不同的文件夹中,但 html 文件与 html 文件位于同一文件夹中。请求来自html文件还是js文件?
  • 来自html文件。能否请您发布 Firefox/WebDev 工具截图。
  • URL 是相对于执行代码的 HTML 文件而非包含代码的 JS 文件解析的。
【解决方案2】:

您尚未对数据进行编码或为其提供密钥名称。

data: { text_box: searchBox.value },

【讨论】:

    【解决方案3】:

    为什么不使用 JQuery post 方法 insted?

    var textBox = $('#searchBox').val();
    $.post( "request.php", { text_box: textBox}, function(data) {
       alert(data);
    })
      .done(function() {
        alert( "second success" );
      })
      .fail(function() {
        alert( "error" );
      })
      .always(function() {
        alert( "finished" );
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 2016-10-28
      相关资源
      最近更新 更多