【问题标题】:php MVC jquery ajaxphp MVC jquery ajax
【发布时间】:2016-02-07 17:59:47
【问题描述】:

我是初学者,只有简单的用于 JQUERY SPA 的 PHP MVC,只是不会使用 Jquery Ajax index.php,如前端控制器调用RouterControler和类AjaxKontroler registruj()方法...使用用户模型添加新用户到MySQL..

 class AjaxKontroler
{
    public function registrovat()
    {       

        if ($_POST)
        {
            try
            {

                $spravceUzivatelu = new SpravceUzivatelu();
                $spravceUzivatelu->registruj($_POST['email'],$_POST['heslo'],$_POST['hesloZnovu'],$_POST['jmeno'],$_POST['prijmeni'],$_POST['telefon'],$_POST['ulice'],$_POST['mesto'],$_POST['psc'],$_POST['captcha']);
                $spravceUzivatelu->prihlas($_POST['email'], $_POST['heslo']);               

            }
            catch (ChybaUzivatele $chyba)
            {
                $this->pridejZpravu($chyba->getMessage());
            }
        }
    echo "Registrace proběhla úspěšně"; 
    }

报名表:

$("#dokoncitregistraci").click(function () {
    var email = $("#emailreg").val();

    var heslo = $("#hesloreg").val();
    var hesloznovu = $("#hesloznovureg").val();
    var jmeno = $("#jmenoreg").val();
    var prijmeni = $("#prijmenireg").val();
    var telefon = $("#telefonreg").val();
    var ulice = $("#ulicereg").val();
    var mesto = $("#mestoreg").val();
    var psc = $("#pscreg").val();
    var captcha = $("#captcha").val();

    console.log("jedu");
    $.ajax({
        type: "POST",
        url: "../ajax/registrovat",
        data: { 
        "email" : email,
        "heslo": heslo,
        "hesloznovu" : hesloznovu,
        "jmeno" :jmeno ,
        "prijmeni":prijmeni,
        "telefon":telefon,
        "ulice":ulice,
        "mesto" :mesto,
        "psc" : psc,
        "captcha" :captcha
        },
        dataType: "JSON",
        success: function(msg){
            alert("msg");

            }

但是所有注册输入都正确地添加了 ti MySQL 就像新行一样。我没有成功的回应。在 MVC 中使用成功响应有什么技巧吗?

浏览器不会发出任何 JS alert()。很抱歉使用 StackOwerflow,这是我的第一个问题,没有最佳实践:)

【问题讨论】:

  • 你收到什么警报(“msg”)??
  • 我希望浏览器在成功时对我说些什么,但没有任何操作发生,但数据已添加到 MySQL
  • 我知道,我只是想问一下,当您运行代码时,您的 ajax 代码的 alert("msg") 会在浏览器中返回什么??
  • 尝试在 php 的 try 块中回显“您的消息”,并查看警报是否在您的浏览器中显示一些消息
  • 添加 echo 到 try 块后还是什么都没有

标签: php jquery ajax model-view-controller


【解决方案1】:

您的代码总体上看起来不错。据我所知,"email":email 中不需要双引号。可以是email:email,但这应该不是问题。

我的直觉告诉我要仔细检查你的 ajax url:。相对 url 很棘手,因为您必须使它们相对于运行执行的页面,而不是浏览器显示的内容。我会切换到像http://www.example.com/ajax/registrovat/ 这样的绝对网址,直到您确定问题所在。 registrovat 之后的最后一个斜杠对于区分控制器名称和值很重要。

您还可以添加error: function() {} 以获取有关正在发生的事情的更多信息。

【讨论】:

  • 我已经尝试添加错误:function (jqXHR) { alert("error" + jqXHR);并使用错误 [object Object] 调用警报消息
  • 尝试让你的错误函数error: function(jqXHR) { alert("error" + JSON.stringify(jqXHR));}。该警报说什么?
  • 您还应该在成功返回中添加JSON.stringify(msg)。
  • 我只是删除 dateType: JSON 并且成功!也许我的 php 方法只是不返回 JSON 并且无法调用成功
  • 仍然有问题与 ajax - ajax 正在解决我的 index.php 布局的整个 HTML,我不确定如何连接我的 AjaxKontroler 类方法的输出以将一些常规 json 回显到 JS 视图页面? index.php -> 路由器 -> ajaxkontroler + 方法(创建 json)
猜你喜欢
  • 2012-07-03
  • 2011-09-20
  • 2015-01-04
  • 1970-01-01
  • 2012-08-11
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
相关资源
最近更新 更多