it-swarm.com.de

Verwenden Sie Ajax, um update_post_meta

Vor 2 Tagen habe ich dieses gefragt, dann habe ich versucht, an meinem Code zu arbeiten, um zu verstehen, wie Ajax und PHP funktionieren, und jetzt habe ich ein neues Problem, das würde wohl leicht zu lösen sein.

Das sind meine Codes:

<?php
/*
Template Name: Nuovo form
*/
?>
<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
    <script src="http://malsup.github.com/jquery.form.js"></script> 

    <script> 
        // wait for the DOM to be loaded 
        $(document).ready(function() { 
            // bind 'myForm' and provide a simple callback function 
            $('#myForm').ajaxForm(function() { 
                alert("Thank you for your comment!"); 
            }); 
        }); 
    </script> 
<?php wp_head();?>
</head> 
<body>
<form id="myForm" action="<?php echo get_template_directory_uri();?>/nuovoform/comment.php" method="post"> 
    Name: <input type="text" name="name" /> 
    Comment: <textarea name="comment"></textarea> 
    <input type="submit" value="Submit Comment" /> 
</form>
</body>
</html>

Dann ist das meine Comment.php

<?php 
// This is comment.php content
$nuovoform = 0;
$nuovocommento = 1;
if ( isset( $_POST['name'] )){
$nuovoform = $_POST['name'];}
if ( isset( $_POST['comment'] )){
$nuovocommento = $_POST['comment'];}
update_post_meta($post->ID,'varcontrollo',$nuovoform);
$controlliamo = get_post_meta($post->ID, 'varcontrollo', true);
?>

'varcontrollo' ist ein benutzerdefiniertes Metafeld, das mit dem Plug-in für benutzerdefinierte Feldvorlagen erstellt wurde.

Ich versuche, das von mir erstellte Formular zu verwenden, um das Ergebnis in meinem benutzerdefinierten Feld zu speichern. Wenn ich versuche, zu comment.php zu navigieren, heißt es:

Schwerwiegender Fehler: Rufen Sie in Zeile 8 die undefinierte Funktion update_post_meta () in D:\Locali\xampp\htdocs\wp-content\themes\slotlandia\nuovoform\comment.php auf

Wahrscheinlich muss ich 'globale' WordPress-Variablen 'importieren', aber ich weiß nicht, was ich schreiben soll.

Gibt es jemanden, der mir helfen kann? Vielen Dank.

2
maisdesign

Das funktioniert nicht, weil Sie sich auf eine einzelne PHP-Datei beziehen, sondern auf die gesamte WordPress-Umgebung.

Es gibt eine einfachere Möglichkeit, Ajax in WordPress zu verwenden.

Verwenden Sie admin_url('admin-ajax') als Formularaktion und fügen Sie die Funktion, die den Ajax-Aufruf beantwortet, in die Datei functions.php des Themas ein.

Weitere Details hier in dieser Antwort

1
ifdion