我是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,但这也没有帮助。
有人可以建议如何实现打印窗口和更新数据库。
答案 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
?>