Вопрос

Я пытался получить пользовательский ввод из приглашения Javascript в функцию PHP и наткнулся на множество препятствий при этом.Я в растерянности, пытаясь использовать метод $.post jQuery, поскольку PHP просто не хочет выполняться, не знаю почему.

В любом случае, вот суть того, что я делаю в данный момент:

1 Проект и его данные загружаются из базы данных – эта информация отображается в таблице.

2 Все данные в таблице можно редактировать с помощью Javascript Prompt(), код, который я использую для этого, приведен ниже:

<div id="lvl3"><a href="" onclick="popupprompt(1); return false"><?php echo $fetchdata['name']; ?></a></div>

Вышеупомянутая работа как таковая:lvl3 — тег для стилизации шрифта;пустой href, чтобы он действовал как ссылка;popupprompt — это созданная мной функция подсказки, она принимает один аргумент, «тип» или то, что редактируется (1 для имени проекта, 2 для описания проекта и т. д.);верните false, чтобы страница не перезагружалась;php echo для отображения данных проекта в таблице.

3 Как только пользователь щелкает объект выше, он выполняет функцию javascript под названием popupprompt, принимающую аргумент «тип» или информацию о том, какая информация о проекте изменяется.код этой функции приведен ниже:

    function popupprompt(type) {
        switch(type)
    {
        case 1:
            var name = prompt("Project Name:", "");

            if (name != null && name != "")
            {
                //Change Project Name
                var getname = name;
                var gettype = type;

                $.post("edit.php", { type: gettype, name: getname });
            } else if (name == "") {
                senderror("Please enter a valid Project Name");
            } else {
                //Prompt canceled
                sendnotification('Canceled my ass!');
            }
            break;
        case 2:
                            //Description?
        case 3:
            //Version?
        case 4:
            //Release?
        default:
            alert("There was an error processing your request.");
            break;
    } }

Проблема, с которой я столкнулся в этой функции, заключается в том, что ничего в edit.php не выполняется, и я понятия не имею, почему.Кроме того, мне пришлось изменить скобки, чтобы они правильно отображались в поле кода, так что не обращайте на это внимания.

4 В любом случае, теперь пользовательский ввод публикуется в edit.php, что не работает, но я все равно опубликую его:

    <?php
    $type = $_POST['type'];
    $name = $_POST['name'];

    switch($type) {
case 1:

    dbconnect();

    $urlext = geturlext();
    $authenticated = isauthenticated();

    if ($authenticated == false)
    {
        echo("<script>senderror('Access denied');</script>");
    } else {

        //Escape and trim input
        $input = trim($input);
        $input = mysql_real_escape_string($input);

        $update = "UPDATE 'projects' SET 'name' = '$input' WHERE 'name' = '$urlext'";
        $updatequery = mysql_query($update) or die(mysql_error());

        echo("<script>sendnotification('Project Name updated');</script>");
        }
    break;
    default:
    break;
    }
    ?>

Снова пришлось переместить некоторые скобки.Но в любом случае эта функция должна обновлять данные в базе данных, однако вместо этого она ничего не делает.Я разместил оповещения вначале, и они никогда не вызываются.

В любом случае, короче говоря, если вы знаете, что я делаю неправильно, пожалуйста, просветите меня, а также, если есть лучший способ сделать это, пожалуйста, дайте мне знать!

Я ценю всю помощь, спасибо

Это было полезно?

Решение

Выяснил это после удачной недели, проведенной в стороне.Я внимательно изучил это в Firebug, устранил опечатку, которая вызывала большинство моих проблем, а также синтаксическую ошибку MySQL.

Я не знаю почему, но моя собственная система отчетов об ошибках не работает при вызове из файла таким образом.Возможно, это еще одна вещь, которую я упускаю из виду, но Firebug определенно помог.

Спасибо тем, кто пытался помочь <3

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top