Question

J'ai essayé d'obtenir les entrées de l'utilisateur à partir d'une invite Javascript dans une fonction PHP et je me suis heurté à de nombreux murs.Je ne parviens pas à essayer la méthode $.post de jQuery - car PHP ne veut tout simplement pas s'exécuter, je ne sais pas pourquoi.

Quoi qu'il en soit, voici un aperçu de ce que je fais en ce moment :

1 Un projet et ses données sont chargés à partir d'une base de données - ces informations sont affichées dans un tableau.

2 Toutes les données du tableau sont modifiables via l'invite Javascript(), le code que j'utilise pour cela est ci-dessous :

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

Les éléments ci-dessus fonctionnent comme tels :lvl3 est une balise pour le style des polices ;href vide pour le faire servir de lien ;popuppprompt est la fonction d'invite que j'ai créée, elle prend un argument, le « type » ou ce qui est en cours de modification (1 pour le nom du projet, 2 pour la description du projet, ect) ;return false pour que la page ne se recharge pas ;php echo pour afficher les données du projet dans le tableau.

3 Une fois que l'utilisateur clique sur l'objet ci-dessus, il exécute une fonction javascript appelée popupprompt en prenant un argument de « type », ou quelles informations sur le projet sont en cours de modification.le code de cette fonction est ci-dessous :

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

Le problème que j'ai dans cette fonction est que rien dans edit.php n'est exécuté - et je n'ai pas la moindre idée de pourquoi.De plus, j'ai dû changer les crochets pour qu'ils s'affichent correctement dans la zone de code - alors ne vous en faites pas.

4 Quoi qu'il en soit, les entrées de l'utilisateur sont désormais publiées dans edit.php, ce qui ne fonctionne pas, mais je les publierai quand même :

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

Encore une fois, j'ai dû déplacer quelques parenthèses.Mais de toute façon, cette fonction est censée mettre à jour les données dans la base de données, mais elle ne fait rien.J'ai placé des alertes au début et elles ne sont jamais appelées.

Quoi qu'il en soit, pour faire court, si vous savez ce que je fais de mal, éclairez-moi, et s'il existe une meilleure façon de procéder, faites-le-moi savoir !

J'apprécie toute l'aide, merci

Était-ce utile?

La solution

Je l'ai compris après une bonne semaine de mise de côté.Je l'ai longuement examiné dans Firebug, j'ai éliminé une faute de frappe qui causait la plupart de mes problèmes ainsi qu'une erreur de syntaxe MySQL.

Je ne sais pas pourquoi, mais mon système de rapport d'erreurs personnalisé ne fonctionne pas lorsqu'il est appelé à partir d'un fichier de cette manière.C'est peut-être une autre chose que j'oublie, mais Firebug a certainement aidé.

Merci à ceux qui ont essayé d'aider <3

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top