简单的PHP字符串检查不起作用

时间:2015-02-28 01:45:14

标签: javascript php string if-statement

我讨厌发布这个问题,但我似乎无法让这个为我工作。我可以在$the_page语句之前直接回复if,但if语句总是出现“else”。有任何想法吗?提前谢谢。

<?php if(is_page('sp')){$the_page = 1;} else { };

if($the_page === 1) { ?>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            $("#form-interest option:first:contains('---')").html('Área De Interés*:');
        });
    </script>
<?php } else { ?>
    <script type="text/javascript">
        jQuery(document).ready(function($) {
            $("#form-interest option:first:contains('---')").html('Area of Interest*:');
        });
    </script>
<?php } ?>

修改 使用你的一些想法,我把它清理干净了。 is_page()是一个Wordpress调用,在这个修订版本中,我正在正确打印西班牙语“Ir al Inicio”(因此is_page函数必须正常工作),但$ interest不会打印“ÁreaDeInterés*:”,因为它应该。 else正在正确输出文本和$interest字符串。

<?php if(is_page('sp')) { $interest = 'Área De Interés*:'; ?>
    Ir al Inicio
<?php } else { $interest = 'Area of Interest*:'; ?>
    SCROLL TO TOP
<?php } ?>
<script type="text/javascript">
    jQuery(document).ready(function($) {
        var interest = '<?php echo $interest; ?>';
        $("#form-interest option:first:contains('---')").html(interest);
    });
</script>

4 个答案:

答案 0 :(得分:0)

我刚刚运行了裸骨if语句:

<?php 
  $the_page=1;

  if($the_page === 1) {
    echo "1: \$the_page=$the_page";
  }
  else{ 
    echo "else: \$the_page=$the_page";
  }
//echos "1: $the_page=1"

然后

<?php 
  $the_page=frenchfry;

  if($the_page === 1) {
    echo "1: \$the_page=$the_page";
  }
  else{ 
    echo "else: \$the_page=$the_page";
  }
//echoes else: $the_page=frenchfry

我想问题是is_page('sp');你说你能够回应它并验证它是数字1吗?

答案 1 :(得分:0)

检查您的情况if(is_page('sp')),这肯定会返回false,因此您的变量$the_page未设置为1,因此它始终会在else statement中结束。

答案 2 :(得分:0)

在我看来,你正在关闭语句上的php标签,因此它们都在运行,因为它们都是普通的html。你只看到最后一个,因为它发生在最后。试试这个:

<?php if(is_page('sp')){$the_page = 1;} else { };

if($the_page === 1) {
    echo "<script type='text/javascript'>".
        "jQuery(document).ready(function($) {".
            "$('#form-interest option:first:contains('---')').html('Área De Interés*:');".
        "});".
    "</script>";
<?php } else { 
    echo "<script type='text/javascript'>" .
        "jQuery(document).ready(function($) {".
            "$('#form-interest option:first:contains('---')').html('Area of Interest*:');".
        "});".
    "</script>";
    }
?>

你似乎对语法有点困惑,所以希望这有点意义。

答案 3 :(得分:0)

参考我的上一条评论:我确信某处存在JavaScript错误。如果检查源,则正确设置变量,因此PHP按预期工作。

查看Chrome中的JavaScript控制台,我看到以下错误消息,该消息仅出现在西班牙语版本中,因此非常适合进一步调查:

Uncaught TypeError: Cannot read property 'match' of undefined in jquery.easytabs.min.js?ver=3.2.0:12