首页 文章

让PHP从jQuery中获取数据(相反)

提问于
浏览
-1

我正在尝试在我的在线控制台程序中实现一项功能 . 我希望能够键入命令,让jQuery将其发送到PHP文件,并让PHP文件将响应返回给jQuery(由控制台输出) . 我希望进行这种通信,以便用户不仅可以拉出页面源中的js并找到所有秘密命令/复活节彩蛋:) . 我知道这可能与AJAX有关(因为我希望用户留在控制台而不是被重定向),尽管我还没有找到一个可行的解决方案 . 我需要一个表单或隐藏的提交按钮吗?或两者?我应该在html中需要php文件,还是只在jQuery中引用它?我觉得我已经尝试了一切 . 这是我的代码的一个非常简化的版本 . 任何其他提示/改进将不胜感激 . 提前致谢! (顺便说一句:我不需要任何帮助输出文本到控制台,我已经弄明白了...我只需要jQuery和PHP之间的通信,那些代码可能是什么样的???) .

$(document).ready(function() {
  $(document).keypress(function(e) {
    if (e.which == 13) {
      cmd = $("input").val();
      $('#submitted').append('<span class="green">> </span>' + $('#input').val() + '<br>');
      $('#input').val('');
    }
  });
});
html {
  background-color: #000000;
  font-family: Menlo;
}

.console {
  color: #ffffff;
}

.green {
  color: #39ff14;
}

input {
  background: transparent;
  border: none;
  color: #ffffff;
  font-family: Menlo;
  font-size: 15px;
}

p {
  color: #ffffff;
}
<!DOCTYPE html>
<html>
	<link rel="stylesheet" type="text/css" href="theme.css">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
	<script src="console.js"></script>
<div class="console">
  <div id="submitted"></div>
  <span class="green">> </span>
  <input type="input" name="input" id="input" autocomplete="off"><br>
</div>
</html>

2 回答

  • 0

    我使用带有AJAX的formData来处理这类事情:

    var formData = new FormData();
    formData.append('name_of_field', value_of_field);
      $.ajax({
        type: "POST",
        url: "ajax/your_php_processing_file.php",
        data: formData,
        processData: false,
        contentType: false,
        success: functionToHandleSuccess
        });
    

    此代码将表单对象作为$ _POST数据发送到您的php AJAX文件 . 您的processData和contentType变量很重要 .

    functionToHandleSuccess(data){
    //your code here to handle what the server returns
    //for example
     switch (data){
        case "Fail_query" :
        $("#submitted").html("<p class='alert alert-danger'>Database error! Try 
          again</p>");
        break;
        default :
        $("#submitted").show().html(data);      
    }
    

    }

    在你的php文件中,只需像普通的$ _POST数据一样对其进行编码,确保净化它 .

  • 0

    是Ajax是正确的方式......

    您可以从PHP服务器编写一个提供JSON数据的HTTP路由 . 然后,您可以使用 JQuery.get 获取您需要的所有数据

相关问题