2日前、私は これ と尋ねました、それから私はajaxとphpがどのように働くか理解することができるように私のコードで取り組むことを試みました、おそらく簡単に解決されるでしょう。
これらは私のコードです:
<?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>
それからこれは私の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'はカスタムフィールドテンプレートプラグインを使って作成されたカスタムメタフィールドです。
私がやろうとしているのは、自分のカスタムフィールド内に結果を格納するために作成したフォームを使用することです。私がcomment.phpを閲覧しようとするなら、それはこれを言います:
致命的なエラー:8行目のD:\ Locali\xampp\htdocs\wp-content\themes\slotlandia\nuovoform\comment.phpで未定義の関数update_post_meta()を呼び出します
おそらく私はWordPressの「グローバル」変数を「インポート」しなければならないのですが、何を書けばいいのかわかりません。
私を助けることができる人はいますか?どうもありがとうございました。
単一のphpファイルを参照しているのではなく、WordPress環境全体を参照しているため、これは機能しません。
WordPressでajaxを使うもっと簡単な方法があります。
フォームアクションとしてadmin_url('admin-ajax')
を使用し、そしてajax呼び出しに答える関数をテーマのfunctions.phpに置きます。
この詳細 の回答はこちら