为什么我从同一个javascript变量中得到两个不同的结果?

时间:2019-05-12 18:29:31

标签: javascript php wordpress

以下是我在我的网站的functions.php文件中一直使用的功能的模型。据我所知,直到上个月,它一直运行良好。 JavaScript为我的串联字符串返回了两个不同的结果,一个是带有php数组索引值的字符串,另一个是包含PHP数组索引单引号的字符串。我不确定为什么现在会发生这种情况以及如何解决它。

我尝试将整个字符串连接移动到php,但这没有帮助。

function paypalpayment() {
    global $wpdb;
    $user = wp_get_current_user();
    $user_ID = $user->ID;
    $shortcode = $wpdb->get_row("SELECT MAX(ap.pending) AS pending, ap.book_datetime, ap.id, ap.hash FROM ea_appointments AS ap "
            ."INNER JOIN ea_users AS us ON ap.id_users_customer = us.id "
            ."WHERE us.wp_id ='".$user_ID."'");
    $hash = $shortcode->hash;

    $html = '';
    $html .= '<input style="width:250px" class="mb0 btn btn-lg btn-filled cfa-button" type="button" onclick="deletapt()" value="Delete Apt.">';
    $html .= '<input type="hidden" name="cancel_return"';
    $html .= '<script>
        var cancelurl = "https://www.myurl.com/' . $hash . '";
        function deletapt(){
            window.location = cancelurl;
        }
        $(document).ready(function() {
            jQuery("input[name=return]").val("https://www.myurl.com/payment-success/");
            jQuery("input[name=cancel_return]").val(cancelurl);
        });  
    </script>';
}

问题在于,现在cancelurl在不同的地方产生不同的结果:

function deletapt()中,它返回以下正确结果:

"https://www.myurl.com/90241ba3ba27e246bcd9b17b76f0b463"

$(document).ready(function()中,它返回以下结果的奇数:

"https://www.myurl.com/' .$shortcode->hash. '"

我需要$(document).ready(function()才能返回

"https://www.myurl.com/90241ba3ba27e246bcd9b17b76f0b463"

我该如何解决。

1 个答案:

答案 0 :(得分:0)

好,问题是:

$(document).ready(function()

需要

jQuery(document).ready(function()

我更改了主题,但是新主题无法像旧主题一样处理jQuery。切换后,我不得不在代码中将其拼写清楚,但我错过了这一部分。现在一切都很好。