Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переменные в js и php (https://javascript.ru/forum/dom-window/59949-peremennye-v-js-i-php.html)

lebydev 04.12.2015 11:59

Переменные в js и php
 
Добрый день,

Помогите разобраться:
Имеется запрос вставки данных в таблицу БД, некоторые параметры динамические. По клику на ссылку должна происходить вставка в БД нужного результата, однако выходит только последний результат. Ниже приведён код:
$query = "INSERT INTO education(employee_id, education_type_id, institution_id, course_name, period_from, period_till, education_document_id) VALUES($row[0], 2001134, 2001142, $coursename, $startdateresult, $enddateresult, 2001149)";

<script>
function sendResult() {
var a = "<?php echo $query ?>";
console.log(a);
alert('Submitted');
}
</script>

$link = '<a href = "https://somelink='.$row[0].'" target = "_blank" onClick = "sendResult()">Send result</a>';

laimas 04.12.2015 13:55

$query = "INSERT INTO ..." это строка SQL запроса, который может выполнить только сервер, и которого у вас в коде не видно, причем данный запрос возвращает результат вставки, а не нечто из базы. Каким боком к этому всему может иметь клиент посредством var a = "<?php echo $query ?>";?

Что значит видно последний результат, результат чего?

lebydev 04.12.2015 14:09

laimas,
Я скорее всего неправильно сформулировал задачу.

Есть таблица на каждого студента, где указано имя курса, его оценка в курсе и третий столбец, где есть возможность отправить результат в другое приложение. Что понимается под последним - по клику send result напротив определенного курса и оценки должен происходить insert в бд нужного курса и нужной оценки.

laimas 04.12.2015 15:17

Ну не слишком "не так", суть ведь осталась - где сам код запроса?

var a = "<?php echo $query ?>";
console.log(a);

отобразит на клиенте текст SQL запроса, что вообще-то должно быть тайной для клиента. Сам то запрос в базу не будет выполняться.

lebydev 04.12.2015 15:41

Понятное дело, что клиенту запрос не должен быть виден - на тестовом сервере хочу в логах видеть, что под нужный курс выполняется нужный запрос.

$startdate = $course->startdate;
$startdateresult = date('d:M:Y', $startdate);

$enddate = $course->enddate;
$enddateresult = date('d:M:Y', $enddate);

$query = "INSERT INTO education(employee_id, education_type_id, institution_id, course_name, period_from, period_till, education_document_id) VALUES($row[0], 2001134, 2001142, $coursename, $startdateresult, $enddateresult, 2001149)";
$stid = oci_parse($conn, $query);

$link = '<a href = "https://somelink='.$row[0].'" target = "_blank" onclick="return confirm(\'Send result?\')">Send result</a>';

Немного изменил, но всё равно не понимаю как правильно добавить в onclick условие, если подтверждается отправка результата, то выполняем: oci_execute($stid, OCI_DEFAULT); с нужными параметрами в запросе.

laimas 04.12.2015 16:33

Ну у вас же задается диалог, если пользователь выберет "да", значит будет переход по ссылке, которая и выполнит запись в базу. А "нет", значит нет. В чем проблема?

lebydev 07.12.2015 14:52

Проблема в том, что по ссылке открывается профиль пользователя в приложении, а если в онклике конфирмется -> oci_execute, иначе - остается на этой странице

laimas 07.12.2015 15:36

А проблема сделать ссылку на "куда следует"? Диалог тот тут причем, куда будет вести ссылка, туда и перейдете.


Часовой пояс GMT +3, время: 12:34.