gpt4 book ai didi

javascript - 根据 PHP 的输出执行 Javascript 的正确方法

转载 作者:行者123 更新时间:2023-11-28 01:43:57 25 4
gpt4 key购买 nike

我有一个 JavaScript 函数,可以从表单中获取信息并将其发送到我的数据库。我想为其添加一个 PHP 异常。类似于“如果“无论如何”执行 javascript 函数,否则抛出异常消息”。我对 javascript 有点陌生,我不知道从 php 文件调用 javascript 函数的好方法是什么。

代码如下:

index.php

<?php
/*
Template Name: X
*/
get_header(); ?>

<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>X</title>
<script src="jquery-1.10.2.min.js"></script>

</head>

<body>

<div style="margin-top:30px;" align="center">

<form id="myForm" action="sendMessage.php" method="post">
<textarea style="resize:none" cols="80" rows="4" name="message" placeholder="Entrez votre message ici"></textarea><br />
<button style="margin-top:2px; margin-bottom:10px;" id="sub">Envoyer</button>
</form>

</div>

<script src="sendMessage.js"></script>

<div id="output">
</div>

</body>
</html>

<?php get_footer(); ?>

sendMessage.js

$("#sub").click( function() {
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info) { $("#result").html(info); } );
clearInput();
clickSub();
});
$("#myForm").submit( function() {
return false;
});


function clickSub(){
$.ajax({
url: "showMessage.php",
type: "POST",
async: true,

dataType: "html",

success: function(data) {
$('#output').html(data);
}
});
}

基本上我想做的是使用 PHP 条件执行 javascript/ajax。

最佳答案

除了“用 PHP 执行[ing] javascript”这一奇怪的措辞之外,这非常简单。

在 PHP 端,showMessage.php 应在 header 中发回非 2xx HTTP 状态代码。可能像 5xx 错误。然后 ajax 处理 error 或特定的 statusCode(请参阅 http://api.jquery.com/jQuery.ajax/ )。

一般来说,PHP 应该处理异常,并将它们报告为带有正确状态代码的 HTTP 错误(类似于发送 404 和路由未找到错误的方式)。

编辑:为了澄清,您可以使用 header(...) 在 php 中发送 header 。 http://php.net/manual/en/function.header.php

如果您还没有使用可以为您抽象它的框架,那么您确实应该抽象它。例如,Symfony/Silex 具有返回带有 HTTP 状态代码的 Response 对象的 Controller 。状态通过 header 发送,但此详细信息是从应用程序业务逻辑中抽象出来的。

关于javascript - 根据 PHP 的输出执行 Javascript 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552476/

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