Javascript prompt()输出到PHP函数

时间:2012-10-03 18:54:34

标签: php javascript jquery prompt .post

我一直在尝试将用户输入从Javascript提示输入到PHP函数中并且遇到了很多问题。我无法尝试jQuery的$ .post方法 - 因为PHP根本不想执行,不知道为什么。

无论如何,这是我现在正在做的事情的要点:

1项目及其数据从数据库加载 - 此信息显示在表格中。

2表中的所有数据都可以通过Javascript prompt()进行编辑,我正在使用的代码如下:

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

以上工作原理如下:lvl3是字体样式的标签;空白href使其充当链接; popupprompt是我做的提示函数,它需要一个参数,'type'或正在编辑的内容(1代表项目名称,2代表项目描述,等等);返回false,因此页面不会重新加载; php echo在表格中显示项目数据。

3一旦用户点击上面的对象,它就会执行一个名为popupprompt的javascript函数,其中包含“type”参数或正在更改的项目信息。该功能的代码如下:

    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;
    }
    ?>

再次不得不移动一些括号。但无论如何 - 这个函数应该更新数据库中的数据 - 但是,它没有做任何事情。我在开始时就发出了警报,但从未调用它们。

无论如何,长话短说 - 如果你知道我做错了什么,请启发我,如果还有更好的方法 - 请告诉我!

我感谢所有的帮助, 感谢

1 个答案:

答案 0 :(得分:0)

在将它放在一边好一周之后想出来。在firebug中对它进行了长时间的研究,找出了导致我的大多数问题以及MySQL语法错误的拼写错误。

我不知道为什么,但是当以这种方式从文件调用时,我的自定义错误报告系统不起作用。这可能是我忽视的另一件事,但是firebug肯定有帮助。

感谢那些试图帮助&lt; 3

的人