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

标签 javascript php jquery ajax

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

相关文章:

javascript - 使用javascript或jquery手动触发输入框中的验证错误

javascript - 使用 AngularJS 的 FILTER 函数计算过滤器内重复元素的总和

javascript - 滚动指令在 Angular JS 中不起作用

javascript - array.slice 返回 1 个元素而不是两个

jquery - 单击链接更改图像

jQuery数据属性点击事件

javascript - 如何一起使用 Polymer polyfill

php - MySQL - 更新多个值和 WHERE IN

php - 使用Mysql数据库用户名和密码登录

php - 使用 PHP 和 MYSQL 数据库查找不在另一个表中的结果?