PHP:将字符串放入函数参数的正确方法


PHP: Right way to put string in function argument

正在处理一些AJAX功能,并一直解决基本问题。找不到正确的答案。

我想在参数中发送一个字符串。我的代码看起来像这样。

echo '<li class="dropdown-item" onclick="term_ajax_get('. $s->term_id .', '. $s->name .')">';

在Chrome中,它的渲染:

<li class="dropdown-item" onclick="term_ajax_get(797, Cats)">Cats</li>

但当我点击元素时,我会得到

Uncaught SyntaxError: missing ) after argument list

我的jQ功能以防万一

function term_ajax_get(termID, termName) {
    jQuery("a.ajax").removeClass("current");
    jQuery("a.ajax").addClass("current"); 
    jQuery("#loading-animation").show();
    var ajaxurl = 'http://localhost:3333/wordpress/wp-admin/admin-ajax.php';
    jQuery.ajax({
        type: 'POST',
        url: ajaxurl,
        data: {"action": "game-filter", term: termID, name: termName },
        success: function(response) {
            jQuery(".games__cnt").html(response);
            jQuery("#loading-animation").hide();
            return false;
        }
    });
}

term_id的一切都很好,但字符串的结果不太一样。我尝试了反斜杠和所有我能在网上找到的解决方案。但仍然无法获取。

您需要在字符串参数周围添加转义引号。

echo '<li class="dropdown-item" onclick="term_ajax_get('. $s->term_id .', '''. $s->name .''')">';

应该像一样打印出来

<li class="dropdown-item" onclick="term_ajax_get(797, 'Cats')">Cats</li>
termName

如果函数中的变量希望参数是字符串,请尝试添加'$s->name'使其成为字符串值。