jquery在同一页面上运行php函数然后打印窗口

时间:2018-03-24 12:05:48

标签: php jquery ajax wordpress

我是jquery和ajax的初学者并调查了我在这个主题上可以找到的所有线程也看了ajax教程,但仍然有问题。 我有一个jquery脚本,在我的Wordpress子主题中打印当前页面,这很好。

text = open('amir','w')
tedad = int(input('enter number : '))
pas = []
for i in range(1,tedad):
    b=input("enter: ")
    pas.append(b)

print('this is yuor pas {}' . format(pas))
ted = len(pas)

for d in range(1,ted):
    text.write("{}\n".format(pas[d]))

for n in range(1,ted):
    for m in range(1,ted):
        text.write("{},{}\n".format(pas[n],pas[m]))

for t in range(1,ted):
    for k in range(1,ted):
        for h in range(1,ted):
            text.write("{} {} {}\n".format(pas[t],pas[k],pas[h]))

for u in range(1,ted):
    for y in range(1,ted):
        for o in range(1,ted):
            for q in range(1,ted):
                text.write("{} {} {} {}\n".format(pas[u],pas[y],pas[o],pas[q]))
        <script type="text/javascript">
            $(document).ready(function(){
                $("#print-poem").click(function(){
                    window.print();
                });
            });
        </script>

单击该按钮时,我还想在单击按钮时显示的同一帖子上更新Wordpress数据库中的自定义字段。我想在现场输入“Printed”。

我尝试在同一页面上创建一个php函数,并将ajax添加到上面的脚本(也在同一页面上),但没有成功。

<button type="button" id="print-poem">PRINT</button>
<script type="text/javascript">
            $(document).ready(function(){
                $("#print-poem").click(function(){
                   window.print();

				$.ajax({
				  url: 'mark-printed',
					success: function(data) {
					alert('has function run');
  					}
					});
         });
        });
</script>

我也尝试将php放在一个独立的文件中并输入文件url,但这也没有帮助。

有人可以建议如何实现打印窗口和更新数据库。

1 个答案:

答案 0 :(得分:0)

这不是ajax + php的工作方式。

执行此操作时,您必须保留两个文件,一个用于打印页面,另一个用于更新数据库。

<强> your_ajax_file.html

<script type="text/javascript">
            $(document).ready(function(){
                $("#print-poem").click(function(){
                   window.print();

                $.ajax({
                  url: 'your_php_file.php?post_id=' + post_id,//add your post id here
                  type: 'GET',
                    success: function(data) {
                       alert('has function run');
                    }
                    });
         });
        });
</script>
<button type="button" id="print-poem">PRINT</button>

<强> your_php_file.php

<?php    
     function mark_printed ($post_id) { 
           $transaction_status = 'Printed';
           $field_key = "field_58c7ce7357709";
           update_field( $field_key, $transaction_status, 1 );
        }

     $post_id = $_GET['post_id'];
     mark_printed($post_id);//you have to call the function and send post i that sent from ajax
?>