2012-03-02 2 views
2

Мне нужно добавить условие PHP внутри некоторого яваскрипта кода, как это:PHP Условия в Javascript кода

<script> 
$(document).ready(function() { 

<?php if (some condition) { 
    $('#myID').show(); 
} 

}); 
</script> 

Возможно ли это?

+1

Попробуйте и узнать ... или просмотреть любой из соответствующих вопросов об этом –

+0

, каковы эти условия? Не можете ли вы установить эти условия вне кода javascript и вместо этого отправить их в качестве параметров функции javascript? – DG3

+0

Вы используете JavaScript, используя PHP-скрипт? Тогда было бы легко. Или вы хотите использовать команду PHP в JavaScript? Почему вы не можете использовать условие JavaScript if? –

ответ

3

Попробуйте

<?php if (some condition): ?> 
$('#myID').show(); 
<?php endif; ?> 
0

В зависимости от расширения файла.

Если расширение файла PHP (или какому-либо другое вы могли бы собрать для запуска кода PHP с помощью .htaccss правил или апачских конфигураций) это нормально не иначе.

+2

Это не всегда так, вы можете легко настроить сервер для анализа 'php' с расширением файла. – shanabus

+0

@shanabus: Я писал это, см. Обновленный ответ :) – Sarfraz

2

Конечно, если там, где вы делаете ваш JavaScript выполняется PHP:

<script type="text/javascript"> 
$(document).ready(function() { 

<?php if(some condition) { ?> 
    $('#myID').show(); 
<?php } ?> 

}); 
</script> 

Если вы хотите сделать это динамически, однако, было бы гораздо лучше и быстрее, решение использовать Ajax вместо.

+0

Вы говорите, проверяете условие с AJAX на загрузке страницы, правильно? –

+0

@ JaredFarrish: Нет, я не знаю. «Динамично» я имел в виду «регулярно». – Ryan

0

Несомненно. Просто откликните JavaScript:

<script> 
$(document).ready(function() { 

<?php if (some condition) { 
    echo("$('#myID').show();"); 
}?> 

}); 
</script> 
2

Php собирается вывести что-то, когда оно выполняется на стороне сервера. Поэтому при загрузке страницы вы не увидите php-код.

Вы должны написать свой PHP-код таким образом, чтобы он отображал условие JS if при выполнении сценария php.

Нечто подобное.

if (something == <?php outputSomeThingToCompare ?>) { 
    $('#myID').show(); 
} 

Или вы также можете попробовать это.

<?php if(some condition) { ?> 
    $('#myID').show(); 
<?php } ?> 
1

Да и нет.

Помните, что PHP обрабатывает вашу страницу серверная сторона. Итак, если вы хотите динамически изменять то, что находится в вашем JavaScript, то да, вы можете это сделать.

Если вы хотите, чтобы PHP обрабатывал переменные из JavaScript на стороне клиента, то нет, это невозможно.

Опять же, браузер не знает PHP.

0

Это не возможно, потому что JavaScript был собран на стороне клиента, однако PHP работает над сервером. Вы можете сделать это, изменив его на это ...

$string = '<script> 
$(document).ready(function() {'; 
if (some condition) { 
$string .= '$('#myID').show();'; 
$string .= '} 

}); 
</script>';'; 

Пожалуйста, введите код, если возникла ошибка.

1

Да, это возможно, но ваша инструкция <?php кажется закрытой неправильно. Где закрытие ?>?

Если думаете, что это нужно:

<script> 
    $(document).ready(function() { 
     <?php 
     if (some condition) { 
      echo('$("#myID").show();'); 
     } 
     ?> 
    });        //$(document).ready 
</script> 
0

Да, это возможно, но в некоторых ситуациях это не представляется возможным, как и при создании EZpage в ZenCart вы не можете использовать функции PHP, как это. зависит от того, где вы используете этот код. ? В zencart вы можете использовать этот код только в определенных страницах, которые не могут сделать это в EZpages.

2

Вы можете поместить свой скрипт в файл PHP, который будет отображать ваши html и проверять условия с помощью PHP.

Пример index.php

<html><head></head> 
<body> 
Your webpage content here 

<script type="text/javascript"> 
    $(document).ready(function() { 
     <?php if(condition) : ?> 
      $('#myID').show(); 
     <?php else : ?> 
      $('#mySecondID').show(); 
     <?php endif; ?> 
    }); 
</script> 

</body> 
</html> 

Если и хотите, чтобы положить JS в отдельный файл, который вы могли бы сделать это и инициализировать некоторые переменные внутри PHP файл, который будет рендеринга HTML (например, index.php или любой файл шаблона) так же, как указано выше, и таким образом вы можете прочитать их из своего .js-файла.

Пример: index.php

<html><head></head> 
<body> 
Your webpage content here 
<?php 
    $foo = 'foo'; 
    $bar = 'bar'; 
?> 
<script type="text/javascript"> 
     var foo = '<?php echo (condition) ? $foo : $bar ?>'; 
</script> 

</body> 
</html> 

init.js

$(document).ready(function() { 
    if(foo == 'foo') 
     $('#myID').show(); 
}); 
Смежные вопросы