我有一个 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/