gpt4 book ai didi

javascript - 如何从 HTML 或 Javascript 调用 PHP 文件

转载 作者:IT王子 更新时间:2023-10-28 23:57:17 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












要求代码的问题必须表明对要解决的问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果。另见:Stack Overflow question checklist


8年前关闭。







Improve this question




我已经环顾了很长时间,但找不到任何地方可以回答这个看似基本的问题。我不在乎页面是否重新加载或立即显示结果;我只想在我的网站上有一个按钮来运行 PHP 文件。而已。而且我发现所有网站要么告诉你如何直接在 HTML 中运行 PHP 代码,要么告诉你使用 ajax。如果有必要,我会使用 ajax,但在 ajax 存在之前有一段时间使用过 PHP,所以我认为有一种更简单的方法。如果我可以很好地在 HTML 中编写代码,为什么我不能在其中引用它的文件或在 Javascript 中对其进行简单调用?

如果事实证明 ajax 是唯一的前进方式,那么我需要知道什么才能调用一个 PHP 文件,该文件将在按下按钮时创建一个文本文件?我正在为自己创建一个简单的博客网站,并且我已经获得了该网站的代码和可以接受我在 textarea 中写的帖子的 javascript。并立即显示。我只想将它链接到一个 PHP 文件,该文件将在服务器上创建永久博客文章,这样当我重新加载页面时,文章仍然存在。

感谢您花时间阅读和回答。

最佳答案

如何让一个按钮调用PHP?

I don't care if the page reloads or displays the results immediately;



好的!

注意:如果您不想刷新页面,请参阅“好的……但是我该如何使用 Ajax?”以下。

I just want to have a button on my website make a PHP file run.



这可以通过带有单个按钮的表单来完成:
<form action="">
<input type="submit" value="my button"/>
</form>

That's it.



差不多。另请注意,在某些情况下,ajax 确实是要走的路。

这取决于你想要什么。一般来说,当您想避免重新加载页面时,您只需要 ajax。你还是说过你不在乎这个。

为什么我不能直接从 JavaScript 调用 PHP?

If I can write the code inside HTML just fine, why can't I just reference the file for it in there or make a simple call for it in Javascript?



因为PHP代码不在 HTML just fine .这是大多数服务器端脚本语言(包括 PHP、JSP 和 ASP)的工作方式造成的错觉。该代码仅存在于服务器上,如果没有某种远程调用,客户端(浏览器)无法访问它。

如果您要求浏览器显示页面的源代码,您可以看到这方面的证据。在那里您将看不到 PHP 代码,这是因为 PHP 代码没有发送到客户端,因此无法从客户端执行。这就是为什么您需要进行远程调用才能让客户端触发 PHP 代码的执行。

如果您不使用表单(如上所示),您可以使用称为 Ajax 的小东西从 JavaScript 进行远程调用。您可能还想考虑是否可以直接在 JavaScript 中完成您想要在 PHP 中执行的操作。

如何调用另一个 PHP 文件?

使用表格进行通话。您可以让它将用户定向到特定文件:
<form action="myphpfile.php">
<input type="submit" value="click on me!">
</form>

用户最终会进入页面 myphpfile.php .要使其适用于当前页面,请将 action 设置为空字符串(这是我在早先给您的示例中所做的)。

I just want to link it to a PHP file that will create the permanent blog post on the server so that when I reload the page, the post is still there.



您想在服务器上进行操作,您应该使您的表单具有您需要的字段(即使 type="hidden" 并使用 POST ):
<form action="" method="POST">
<input type="text" value="default value, you can edit it" name="myfield">
<input type="submit" value = "post">
</form>

What do I need to know about it to call a PHP file that will create a text file on a button press?



见: How to write into a file in PHP .

您如何从服务器中的 POST 接收数据?

很高兴您问...由于您是新手,我会给您一个小模板,您可以遵循:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
//Ok we got a POST, probably from a FORM, read from $_POST.
var_dump($_PSOT); //Use this to see what info we got!
}
else
{
//You could assume you got a GET
var_dump($_GET); //Use this to see what info we got!
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta char-set="utf-8">
<title>Page title</title>
</head>
<body>
<form action="" method="POST">
<input type="text" value="default value, you can edit it" name="myfield">
<input type="submit" value = "post">
</form>
</body>
</html>

注意:您可以删除 var_dump , 仅用于调试目的。

我如何能...

我知道下一阶段,你会问如何:
  • 如何将变量从一个 PHP 文件传递​​给另一个?
  • 如何记住用户/登录?
  • 如何避免重新加载页面时出现的烦人消息?

  • 对此只有一个答案: session 。

    我将为 Post-Redirect-Get 提供更广泛的模板。
    <?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
    var_dump($_PSOT);
    //Do stuff...
    //Write results to session
    session_start();
    $_SESSION['stuff'] = $something;
    //You can store stuff such as the user ID, so you can remeember him.
    //redirect:
    header('Location: ', true, 303);
    //The redirection will cause the browser to request with GET
    //The results of the operation are in the session variable
    //It has empty location because we are redirecting to the same page
    //Otherwise use `header('Location: anotherpage.php', true, 303);`
    exit();
    }
    else
    {
    //You could assume you got a GET
    var_dump($_GET); //Use this to see what info we got!
    //Get stuff from session
    session_start();
    if (array_key_exists('stuff', $_SESSION))
    {
    $something = $_SESSION['stuff'];
    //we got stuff
    //later use present the results of the operation to the user.
    }
    //clear stuff from session:
    unset($_SESSION['stuff']);
    //set headers
    header('Content-Type: text/html; charset=utf-8');
    //This header is telling the browser what are we sending.
    //And it says we are sending HTML in UTF-8 encoding
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta char-set="utf-8">
    <title>Page title</title>
    </head>
    <body>
    <?php if (isset($something)){ echo '<span>'.$something.'</span>'}?>;
    <form action="" method="POST">
    <input type="text" value="default value, you can edit it" name="myfield">
    <input type="submit" value = "post">
    </form>
    </body>
    </html>

    请查看 php.net 以查找您不认识的任何函数调用。此外 - 如果您还没有 - 获取关于 HTML5 的好教程。

    另外,使用 UTF-8 because UTF-8 !

    备注 :

    I'm making a simple blog site for myself and I've got the code for the site and the javascript that can take the post I write in a textarea and display it immediately.



    如果您使用的是 CMS(Codepress、Joomla、Drupal... 等)?这对你如何做事施加了一些限制。

    此外,如果您使用的是框架,您应该查看他们的文档或在他们的论坛/邮件列表/讨论页面/联系方式上询问或尝试询问作者。

    好的...但是我如何使用 Ajax 呢?

    嗯... 一些 JavaScript 库使 Ajax 变得简单。由于您是初学者,我会推荐 jQuery .

    所以,让我们使用 jQuery 通过 Ajax 向服务器发送一些东西,我将使用 $.post而不是 $.ajax对于这个例子。
    <?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST')
    {
    var_dump($_PSOT);
    header('Location: ', true, 303);
    exit();
    }
    else
    {
    var_dump($_GET);
    header('Content-Type: text/html; charset=utf-8');
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta char-set="utf-8">
    <title>Page title</title>
    <script>
    function ajaxmagic()
    {
    $.post( //call the server
    "test.php", //At this url
    {
    field: "value",
    name: "John"
    } //And send this data to it
    ).done( //And when it's done
    function(data)
    {
    $('#fromAjax').html(data); //Update here with the response
    }
    );
    }
    </script>
    </head>
    <body>
    <input type="button" value = "use ajax", onclick="ajaxmagic()">
    <span id="fromAjax"></span>
    </body>
    </html>

    上面的代码会发送一个POST请求到页面 test.php .

    注:可以混用 sessionsajax如果你想要的话。

    我如何能...
  • How do I connect to the database?
  • How do I prevent SQL injection?
  • Why shouldn't I use Mysql_* functions?

  • ...对于这些或任何其他,请提出另一个问题。这对这个来说太多了。

    关于javascript - 如何从 HTML 或 Javascript 调用 PHP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637944/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com