我有通过显示套件创建的按钮(这些按钮包含“ join”文本,我需要运行功能检查以查看该值应为join还是left。 您可以找到我的js代码和检查功能代码。我的问题是我认为我以错误的方式调用了函数。
function init() {
$('div').each(function(){
$ajax('checkteam')
.then(function(){
if (res.data === true){
var button = $(this).find('.button.pulse');
$(button).text === 'Leave';
$(button).data('leave', true);
}
else {
}
}
)
})
}
'checkteam' => array(
'type' => MENU_CALLBACK,
'page callback' => 'card_generator_check_team_ajax',
'page arguments' => array(2),
'access arguments' => array('access content'),
),
function card_generator_check_team_ajax($term_name) {
global $user;
$term = reset(taxonomy_get_term_by_name($term_name));
$tid = $term->tid;
$user_fields = user_load($user->uid);
$arrlength = (sizeof(($user_fields->field_teams[und])));
for($x = 0; $x < $arrlength; $x++) {
$mytid = ($user_fields->field_teams[und])[$x]['tid'];
if ($tid == $mytid){
return true;
}
return false;
}
}
我需要从checkteam函数获取数据,如果为true,则应保留该值。
答案 0 :(得分:0)
您的帖子看起来像是PHP和JavaScript的疯狂结合。这是我可能建议的一些基本更改。
const Component = () => (
<div className={`${styles["body"]}`}>
{heroesArray.map((hero, i) => {
let randomQuote = getRandomQuote(hero.quotes);
let path = hero.name
.toLowerCase()
.split(" ")
.join("_");
return (
<div className="thumbnail">
<Thumbnail
key={i}
hero={hero}
randomQuote={randomQuote}
path={path}
/>
<Route <!-- HERE I CREATE A ROUTE -->
path={path}
component={() => <HeroPage hero={hero} />}
key={i + 365}
/>
</div>
);
})}
</div>
);
df1['Votes'] = ''
df1['Votes']=df1['movie'].apply(lambda title: df2[df2['FILM'].str.startswith(title)]['Votes'].any(0))
迭代每个元素,因此您可以获得索引和元素。您可以使用 $("div", context).each(function(i, el) {
var termName = $(".field-name-title .field-item", this).text().trim();
$.get(Drupal.settings.setProject.ajaxUrlcheck + "/" + termName,
function(res){
if (res === "false") {
$(".button.pulse", el).html("Leave");
}
}
);
});
或使用.each()
在jQuery中选择适当的元素。
如果需要进一步的帮助,请发布a Minimal, Reproducible Example。
希望这会有所帮助。
答案 1 :(得分:0)
这是我的代码,但是有一个问题总是总是执行一次,而不是每次执行一次(视图行)。我将在图片中附加我的布局。
(function ($) {
Drupal.behaviors.card_generator = {
attach: function (context, settings) {
$('.views-row', context).each(function(){
var button = $(this).find('.button.pulse'),
termName = $(this).find('.field-name-title .field-item');
$.ajax({
url: Drupal.settings.setProject.ajaxUrlcheck + '/' +
$(termName).text(),
method: "GET",
})
.then(function(res){
if (res === 'true'){
$(button).text('Leave');
}
}
)
})
}
};
})(jQuery);
答案 2 :(得分:0)
问题解决了! php函数是错误的。
function card_generator_check_team_ajax($term_name)
{
global $user;
$term = reset(taxonomy_get_term_by_name($term_name));
$tid = $term->tid;
$user_fields = user_load($user->uid);
$arrlength = (sizeof(($user_fields->field_teams[und])));
for ($x = 0; $x < $arrlength; $x++) {
$mytid = ($user_fields->field_teams[und])[$x]['tid'];
if ($tid == $mytid) {
$arr = 'true';
continue;
}
}
drupal_json_output($arr);
}