繁体   English   中英

在ajax调用后使用php变量

[英]Use a php variable after an ajax call

抱歉,这是一个愚蠢的问题。 我真的是Ajax的新手。 我正在尝试更改可验证优惠券代码的Wordpress插件代码。 该代码已加载到javascript中,并从输入的html字段中调用其ID。

html看起来像这样:

<input type="text" id="woo_vou_voucher_code" name="woo_vou_voucher_code" value="" /> 

和js

    jQuery( document ).ready( function( $ ) {
// Check Voucher code is valid or not
    $( document ).on( 'click', '#woo_vou_check_voucher_code', function() {

        //Voucher Code
        var voucode = $( '#woo_vou_voucher_code' ).val();

        if( voucode == '' || voucode == 'undefine' ) {

            //hide submit row
            $( '.woo-vou-voucher-code-submit-wrap' ).fadeOut();

            $( '.woo-vou-voucher-code-msg' ).removeClass( 'woo-vou-voucher-code-success' ).addClass( 'woo-vou-voucher-code-error' ).html( WooVouCheck.check_code_error ).show();

        } else {

            //show loader
            $( '.woo-vou-check-voucher-code-loader' ).css( 'display', 'inline' );

            //hide error message
            $( '.woo-vou-voucher-code-msg' ).hide();

            var data = {
                            action  : 'woo_vou_check_voucher_code',
                            voucode : voucode
                        };
            //call ajax to chcek voucher code
            jQuery.post( WooVouCheck.ajaxurl, data, function( response ) {
                //alert( response );
                if( response == 'success' ) {

                    //show submit row
                    $( '.woo-vou-voucher-code-submit-wrap' ).fadeIn();

                    $( '.woo-vou-voucher-code-msg' ).removeClass( 'woo-vou-voucher-code-error' ).addClass( 'woo-vou-voucher-code-success' ).html( WooVouCheck.code_valid ).show();



                }

它工作得很好,但是我现在想要的是在div'.woo-vou-voucher-code-submit-wrap'内部,我可以回显js文件中使用的voucode var。 就像是:

<div class="woo-vou-voucher-code-submit-wrap"><?php echo $voucode; ?><div>

我不知道该怎么实现...

编辑:对不起,我仅使用回显为例。 我需要在其他php函数中使用$ voucode。

<?php
                global $wpdb;
                $querystr = "SELECT post_id
                FROM $wpdb->postmeta
                WHERE
                (meta_key = '_woo_vou_purchased_codes' AND meta_value = '$voucode')";
                $postid = $wpdb->get_var($wpdb->prepare($querystr));?><div class="woo-vou-voucher-code-submit-wrap"><?php echo $postid; ?><div>
$('.woo-vou-voucher-code-submit-wrap').text(voucode);

由于您将voucode发布到php脚本,因此您的代码将在$_POST['voucode'] ,请根据需要使用该代码。 然后回显$postid和成功消息

的PHP

<?php
$voucode = $_POST['voucode'];
//do whatever processing
//..

if($validCode){
    echo "success,".$postid;
}

JS

//check that success is the first part of the response
if( response.indexOf('success') === 0 ) {
    var postid = response.split(",")[1];
    $( '.woo-vou-voucher-code-submit-wrap' ).text(postid).fadeIn();
}

这只是一个简单的例子。 您可以使用其他响应类型,例如JSON,因此您不必进行字符串拆分或其他操作。

PHP在收到请求后呈现页面。 PHP在服务器上运行,因此一旦在用户的浏览器中加载了页面,就无法执行PHP代码。 您将需要使用JavaScript,在这种情况下需要使用jQuery。

修改代码,每当要添加变量的值时,只需使用jQuery函数将其添加即可。

$(".woo-vou-voucher-code-submit-wrap").text(voucode);

如果它是表单的输入字段,则使用函数val

$(".woo-vou-voucher-code-submit-wrap").val(voucode);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM