оператор php if не работает с переменной jquery - PullRequest
0 голосов
/ 21 июня 2011

Переменная jQuery, которую я посылаю в мой PHP, не работает (или, по крайней мере, кажется, что она не работает). Я отправил его своему php с помощью ajax.

Пожалуйста, посмотрите на это, возможно, вы видите проблему:

                $('.do').click(function(){
                var cid2 = $(this).attr('id');
                var gebridauthpos = cid2.indexOf('||');
                var gebridauth = cid2.substring(gebridauthpos+2);
                $.post("agenda.php", {gebridauth: gebridauth});
                alert(gebridauth);
                <?php
                    if ($admin == true || isset($_POST['gebridauth']) AND $_SESSION['id'] == $_POST['gebridauth']) {
                        echo "$('#dialog').dialog('open');\n";
                        echo "var cid = $(this).attr('id');\n";
                        echo "var datum = cid.substr(0, 10);\n";
                        echo "var naampos = cid.indexOf('|');\n";
                        echo "var gebridpos = cid.indexOf('||');\n";
                        echo "var naam = cid.substring(naampos+1,gebridpos);\n";
                        echo "var gebrid = cid.substring(gebridpos+2);\n";
                        echo "$.ajax({\n";
                            echo "type: \"POST\",\n";
                            echo "url: \"agenda.php\",\n";
                            echo "data: naam,\n";
                            echo "success: function(){\n";
                                echo "$('#gebruikerinput').html(\"<input type='text' READONLY='' size='35' value='\" + naam +\"'>\");\n";
                                echo "$('#gebridinput').html(\"<input type='hidden' name='gebridtextbox' value='\" + gebrid + \"'>\");\n";
                                echo "$('#datuminput').html(\"<input type='text' READONLY='' size='12' name='datum' value='\" + datum + \"'>\");\n";
                            echo "}\n";
                        echo "})\n";
                        echo "return false;\n";
                    }
                ?>
            });

По сути, я хочу использовать gebridauth в операторе if моего PHP, когда я нажимаю на TD. Если TD совпадает с человеком, который вошел в систему, покажите диалоговое окно.

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Я думаю, вы неправильно понимаете, как работает AJAX.Вы не можете так смешивать Javascript и PHP, так как они работают в разное время в разных системах.Если вы отправляете сообщение agenda.php, ваш код PHP должен быть в файле agenda.php.Этот файл должен , а не содержать Javascript.Вы также не сможете echo Javascript взамен таким образом.

0 голосов
/ 21 июня 2011

Вам нужен обратный вызов для вашего $.post вызова, сейчас вы просто отправляете POST и не обращаете никакого внимания на то, что сервер отправляет обратно, поэтому диалог не появится. Я думаю, вы хотите что-то более похожее (с реальным кодом, где большой комментарий):

$.post("agenda.php", {gebridauth: gebridauth}, function(data, textStatus, jqXHR) {
    // If the server sent back a "show the dialog" value in data then
    // show the dialog and all the other stuff that's currently in a
    // bunch of PHP echo calls.
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...