2012-06-11 2 views
0

, столкнувшись с вызовом функции JQuery из PHP. Я получаю синтаксическую ошибку, когда я использую следующий код:, вызывающий JQuery из PHP

if(!empty($_POST['selectAGE'])){ 
    $username = $_POST['selectAGE']; 
} 

if(empty($_POST['selectAGE'])){ 
    echo '<script type="text/javascript">' 
    , '$("#selectAGE").prepend("<option value=''></option>").val('');' 
    , '</script>'; 
} 

Am Я не вытекающее должным образом или что-то?

далее к этому, я затем проверить это поле выбора с помощью

if (form.selectAGE.selectedIndex == 0) { alert ("Enter the correct Age."); return false; } 

однако после того, как форма была отправлена, она устраняет «пустое» значение, которое предваряется и теперь один вы выбрали selectindex 0., поэтому вышеуказанная проверка вернет, что вы ее не ввели. Как я могу изменить приведенную выше строку, чтобы принять это во внимание?

+2

Просто пояснение: вы не называете функцию jQuery изнутри PHP. Это было бы невозможно. То, что вы делаете, - это эхо-код javascript/jquery от PHP. Этот код будет запускаться на клиенте (браузере), тогда как PHP работает на сервере. – bfavaretto

ответ

3

Побег символов здесь:

'$("#selectAGE").prepend("<option value=\'\'></option>").val(\'\');' 
+0

Удивительный! работает, спасибо, огромное спасибо, вы наверняка ускорили конец моей уже 13-часовой смены :) –

+0

@ChrisSpalton - Нет проблем, у всех нас есть такие дни. Не забудьте отметить как ответ :-) –

+0

далее, я затем проверяю этот флажок, используя if (form.selectAGE.selectedIndex == 0) {alert («Введите правильный возраст»); return false; } однако, как только форма была отправлена, она исключает добавленное «пустое» значение, и теперь выбранная вами выбрана indexex 0. поэтому вышеуказанная проверка вернет, что вы ее не ввели. Как я могу изменить приведенную выше строку, чтобы принять это во внимание? –

0

Вам нужно бежать одинарные кавычки. Попробуйте следующее:

<? 
if(!empty($_POST['selectAGE'])){ 
    $username = $_POST['selectAGE']; 
} 

if(empty($_POST['selectAGE'])){ 
    echo '<script type="text/javascript">', 
    echo '$("#selectAGE").prepend("<option value=\'\'></option>").val(\'\');' 
    , '</script>'; 
} 
?> 
1

Если побег дает вам проблемы, я бы просто написал JS вместо того, чтобы повторять его.

if(empty($_POST['selectAGE'])): ?> 
    <script type="text/javascript"> 
     $('#selectAGE').prepend('<option value=""></option>').val(''); 
    </script> 
<?php endif; 

Я предпочитаю использовать endif вместо сопоставления скобок между JS и PHP.

Смежные вопросы