javascript Hoyw解析js中的空值

hkmswyz6  于 2023-03-06  发布在  Java
关注(0)|答案(1)|浏览(108)

我有一个小问题,在一个循环中我注入了一个按钮。当我点击按钮时,返回一个值。
我的产品. php

<?php
  for ($i = 0, $n = \count($languages); $i < $n; $i++) {
?>
  <div class="row" id="productsSeoTitle<?php echo $i ?>">
    <div class="col-md-12">
      <div class="form-group row" data-index="<?php echo $i; ?>">
        <label for="<?php echo $Products->getDef('text_products_page_title'); ?>" class="col-1 col-form-label">
          <?php echo $CLICSHOPPING_Products->getDef('text_products_page_title'); ?>
        </label>
        <div class="col-md-4 input-group" id="products_head_title_tag<?php echo $i; ?>">
          <?php 
          echo '&nbsp;' 
             . HTML::inputField('products_head_title_tag[' . $languages[$i]['id'] . ']'
                      , SeoAdmin::getProductsSeoTitle($pInfo->products_id, $languages[$i]['id'])
                      , 'maxlength="70" size="77" id="products_head_title_tag_' . $i 
                        . '"  data-language="' . $languages[$i]['name'] 
                        . '" data-languageid="' . $languages[$i]['id'] . '"'
                      , false); 
          ?>
        </div>
      </div>
    </div>
  </div>
<?php
  }
?>

我的javascript文件在循环内调用(一部分),但在我的情况下,它不工作
这种情况下工作,我可以看到警报与信息,但消息没有价值

var languageName = $(this).data('language'); // Extraire la valeur de data-language

  if (typeof languageName !== 'undefined' && languageName !== 'undefined') { 
    var languageId = $(this).data('languageid'); // Extraire la valeur de data-languageId
    var productsName = '{ $ProductsAdmin->getProductsName($id, ' + languageId + ')} ';    
    var questionResponse = '{$this->app->getDef('text_seo_page_title_question', ['languageName' => "' + languageName + '", 'productsName' => "' + productsName + '"])}';
alert(questionResponse);
  }
 newButton.click(function() { // Ajouter un listener pour chaque bouton
    let message = questionResponse;
    ....
  • 警报如下所示:
  • 文本定义为英语:==〉第一次弹出
  • 法文文本定义:==〉第二次弹出

let message = questionResponse不是值
如果我那么做
变量语言名称= $(this).data('语言');//数据语言的额外价值

if (typeof languageName !== 'undefined' && languageName !== 'undefined') { 
    var languageId = $(this).data('languageid'); // Extraire la valeur de data-languageId
    var productsName = '{ $ProductsAdmin->getProductsName($id, ' + languageId + ')} ';    
    var questionResponse = '{$this->app->getDef('text_seo_page_title_question', ['languageName' => "' + languageName + '", 'productsName' => "' + productsName + '"])}';
  }

alert(questionResponse);

 newButton.click(function() { // Ajouter un listener pour chaque bouton
    let message = questionResponse; 
    ....
  • 警报如下所示:
  • 未定义==〉第一个弹出窗口
  • 文本定义为英语:==〉2nf弹出
  • 未定义==〉第3次弹出
  • 法文文本定义:==〉第4次弹出

我的循环必须只有两次,因为我只有两种语言,法语和英语
如何让这条线物有所值

let message = questionResponse;

如果信息不够,我可以给予更多。谢谢

rsaldnfx

rsaldnfx1#

我认为您在块 * 内部 * 创建了一个变量,并试图从 * 外部 * 访问它

if (typeof languageName !== 'undefined' && languageName !== 'undefined') { 
    ...
    var questionResponse = '{$this->app->getDef('text_seo_page_title_question', ['languageName' => "' + languageName + '", 'productsName' => "' + productsName + '"])}';
    ...
  }
 newButton.click(function() { 
    let message = questionResponse; // This is another block
    ....

尝试更早地创建变量

var questionResponse = null

  if (typeof languageName !== 'undefined' && languageName !== 'undefined') { 
    ...
    questionResponse = '{$this->app->getDef('text_seo_page_title_question', ['languageName' => "' + languageName + '", 'productsName' => "' + productsName + '"])}';
    ...
  }
 newButton.click(function() { 
    let message = questionResponse; 
    ....

相关问题