一个 PHP 文件中有两个事件功能

two event functionality in one php file

本文关键字:两个 事件 功能 PHP 文件 一个      更新时间:2023-09-26

嗨,我是php和jquery的新手。请原谅我的php词汇。

我的js文件中有两个事件。

1)提交:将用户输入的文本提交到结果.php查询数据库并显示结果。(result.php?name=xyz)

2)onkeyup:对相同的结果进行ajax调用.php查询URL并获取json数据。 (result.php?key=xyz)

我的问题是我是否可以在结果.php中检查 isset($_GET['key']),查询 url 并返回 json,其余的 php 不会被解析。基本上,在 C 编程的情况下,是否有类似返回 0 的东西。

这个问题可能看起来很愚蠢,无论如何我可以有 2 个不同的 php 文件,但我想知道这是否可能。提前致谢:)

<form action = "result.php" method = "get">
<input type = "text" id = "name" >
<input type = " submit">
</form>
<script>
$('#name').on('keyup',function (e){
   input_val = $(this).val();
   $.ajax({
      url: "result.php?key=" + input_val,
      success: function(data){
      alert(data);
      }
  });
});
</script>

如果我很好地理解,你想知道一种只使用一个PHP脚本来处理Ajax和"正常"(返回整个页面)任务的方法。

因此,如果是,则可以使用以下架构轻松实现:

//... some initialization, if needed
if (isset($_GET['key'])) {
  // ... do the job for creating the expected Ajax response, say $ajax_response
  echo $ajax_response;
  exit;
  // nothing else will happen in the current script execution
}
// otherwhise you can do all "normal" job here, as usual...

从你的问题中,如果我理解正确,你想将布尔值从 PHP 返回给 Ajax,你可以根据 if 条件回显"成功"或"失败",并在 ajax 响应中捕获它并在 JS 中处理它。

您可以使用

exit;die();来终止php脚本。 http://php.net/manual/en/function.exit.php