2013-04-27 2 views
0

Добрый вечер .. У меня есть форма, где вы назначаете работу работнику, однако, если эта работа уже назначена, у пользователя есть выбор либо переназначить ее или вернуться на предыдущую страницу. поэтому я пытаюсь написать синтаксис для подтверждающим оповещения, который перенаправляет пользователя на одной странице или другой, в зависимости от его выбора, я поместил его в головной части, и это идет что-то вроде этого:Вызов функции для управления подтверждением подтверждения из инструкции if

function show_confirm() { 
    var con = confirm("Already assigned.. would you like to reassign?"); 
    if (con ==true) { 
     window.location = "reassign.php" 
    } else { 
     window.location = "index.php" 
    } 
} 

Вопрос: как вы называете эту функцию в зависимости от оператора if? Я видел несколько примеров в Интернете, где люди помещают функцию (а не просто называть ее) непосредственно внутри оператора if, но разве это не должно смешивать разные типы скриптов? Итак, как вы вызываете функцию из этой инструкции if? Я попытался это, но он не работал:

$flat=$_POST['flat']; 
$check= mysql_query("SELECT * FROM assignment WHERE flat = '$flat'"); 
$num= mysql_num_rows($check); 
if ($num!=0) { show_confirm(); 
} else { //irrellivant code 
+0

Вы пытаетесь вызвать функцию JavaScript в вашем PHP коде. Это не будет работать так ... – ceejayoz

ответ

1

Так как это функция JavaScript, вы просто поместите саму функцию внутри заголовка, а затем в PHP, вы выводите вызов функции в вашем случае, как это :

if ($num!=0) { 
    echo '<script type="text/javascript">show_confirm();</script>'; 
} else { 
    //irrelevant code 
} 

PHP - это серверный скриптовый язык, а JavaScript - клиентский. Вы не можете вызвать функцию JavaScript прямо со стороны сервера, как вы пытались сделать. Однако вы можете выводить javascript на страницу через PHP, как я сделал в моем примере.

+0

, который тоже не работал. На самом деле я попробовал это, прежде чем публиковать вопрос. Я снова попробовал это, но ничего. –

+0

Он должен работать, если он выводится в правильном месте на странице, вы выводите его в тело HTML-страницы? – Revent

+0

OK .. он сделал работу .. это была глупая опечатка (как обычно) .. большое спасибо –

0

Да, вы пытаетесь смешать php (серверная сторона) и javascript (клиентская сторона) в одном процессе, который не будет работать.

Когда вы отправляете форму, чтобы проверить, были ли они уже назначены, вам необходимо перенаправить их на страницу подтверждения, оттуда у вас будут кнопки да/нет, связанные с переназначением и возвращением страниц.

Лучшее решение на самом деле должно было бы справиться с этим с помощью AJAX, но с учетом вопроса о природе, я считаю, что лучше всего придерживаться рабочего процесса, отличного от ajax.

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

+0

что вы предлагаете создать дополнительную страницу, чтобы подтвердить запрос, я знаю, как это сделать., Но я пытаюсь сделай это вместо предупреждения ... это невозможно? –

+0

Конечно, это возможно, просто сложнее. Вам нужно заглянуть в ajax, который позволит вам отключить запрос на ваш php-скрипт, тот, который работает, если пользователь уже назначен, а затем отображает предупреждение http://api.jquery.com/jQuery.ajax/- хорошее место для начала. –

+0

ok .., что бы потребовало много обучения ... ok ..question: как это работает, когда вы вызываете функцию в таких местах, как: onclick = "function()" внутри тега кнопки? –

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