У меня есть карусель с такими же изображениями, когда пользователи нажимают на нее, я показываю форму с электронной почтой и паролем. Когда действие отправки отправляется через AJAX, я передаю идентификатор изображения, адрес электронной почты и пароль для обратного вызова PHP.
После проверки учетных данных в моем PHP я вызываю скрипт node.js, но я просто могу выполнить один скрипт node.js за раз.
Есть ли способ выполнить много node.js, каждый из которых имеет одно и то же имя идентификатора и различает электронную почту и пароль с php_exec?
My Carousel code:
<div class="col-sm-12">
<div id="owl_carousel" class="owl-carousel owl-theme" style="opacity: 1; display: block;">
<div class="owl-wrapper-outer"><div class="owl-wrapper" style="width: 7296px; left: 0px; display: block;"><div class="owl-item" style="width: 228px;"><div class="item">
<img role="button" tabindex="-1" data-trigger="hover" data-content="lollipop" data-placement="bottom" data-toggle="popover" data-container="body" alt="lollipop" id="lollipop" style="width: 170px; height: 170px;" src="img/clients/lollipop.png" data-original-title="" title="">
</div></div>
</div>
И вот мой php код:
My PHP Code
<?php
class validateForm {
function formValidate() {
// Informations passes from form
$username = trim($_POST['username']);
$password = trim($_POST['password']);
$filename = trim($_POST['file']);
$retorno = array();
// CasperJS call
$nodejs_run = "node";
$script = "/usr/share/node/parser.js";
// Check if POST is null
if ( (empty($username) && empty($password)) || ($username == null || $password == null) ) {
$retorno['error'] = "Fill the form!";
echo json_encode($retorno);
} else {
// Execute to CasperJS via asynchronous process
try {
exec("{$nodejs_run} {$script} {$username} {$password} {$filename} 2>&1", $output,$retval);
} catch (Exception $e) {
$retorno['failure'] = "The request failure!";
}
if (($retval) == '0'){
$retorno['success'] = $output;
echo json_encode($retorno);
} else {
$retorno['error'] = $output;
echo json_encode($retorno);
}
} // end of if block
return false;
} // end function
} // end class
// Call function
$instValidadeForm = new validateForm; //create instance of class
echo $instValidadeForm->formValidate(); // access method of class
?>
Спасибо за любую помощь.
Когда вы используете exec (), вы можете разделить несколько команд с помощью &&
например:
exec("$command1 && $command2 && $command3", $output, $retval);
В этом случае $ command2 выполняется только в случае успешного выполнения $ command1, $ command3 выполняется только в случае успешного выполнения $ command2. И $ retval будет содержать статус возврата последней команды для выполнения.
Других решений пока нет …