2017-02-10 2 views
2

У меня есть страница home.php, у которой есть кнопка 'UPDATE'.
1. OnClick функции 'UPDATE' должен вызвать функцию яваскрипта 'записи()'.
2. 'write()' function get - это имя пользователя и значение - как из сеанса (здесь используется php), так и для записи в базу данных.Выполнение ввода php в базу данных, в функции javascript

Вот код: home.php

<html> 
<head> 
    <title> Sample Page </title> 
</head> 

<body> 

<script> 

function write(){ 
    <?php 

    include("dbConnect.php"); // connection works perfectly with other php files 
    // gets 'latestValue' from session variable 
    // gets 'username' from session variable 
    // updates 'patients' table with the latestValue, against the username 
    $query = "UPDATE patients SET lastLDNId = '$_SESSION[latestValue]' WHERE username='$_SESSION[username]'"; 
    $result = mysqli_query($con, $query); 

    ?> 
} 

</script> 

<input type="button" onclick="write()" value="UPDATE"> 

</body> 
</html> 

Когда я запускаю код и проверки на Осматривая элемент, я получаю следующее сообщение об ошибке в функции записи(), как браузер интерпретирует это

function writeLDN(lDNId){ 
    <br /> 
<b>Notice</b>: Undefined index: latestValue in  <b>C:\xampp\htdocs\MedPhil\home.php</b> on line <b>98</b><br /> 
} 

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

Может ли кто-нибудь дать мне решение, отличное от эхо-ответа на весь контент скрипта, используя php?

Заранее спасибо

+0

Посмотрите на AJAX. PHP и JS не являются взаимозаменяемыми, и то, что вы пытаетесь сделать, не будет работать каждый раз – Darren

+1

** вы не можете ** смешивать JS и PHP таким образом. ** все ** php выполняется на сервере, ** все ** JS выполняется на клиенте. есть * нет PHP слева *, когда он попадает в браузер. прочитайте несколько руководств о ** AJAX ** –

+0

, когда страница придет в ваш браузер php ушла навсегда. – WeAreRight

ответ

1

Я извиняюсь, но у вас есть серьезные недоразумения относительно стороны сервера коды против стороны клиента кода. В вашем стеке технологий PHP выполняется только на сервере, и только один раз, когда запрашивается страница, JavaScript выполняется только на стороне клиента и только там.

Так что ваша попытка «вызвать» php из javascript не может работать. Это последовательность этого, обрабатывается:

  1. Сервер видит ваш <?php маркерного тега и выполняет код PHP в там заменив его результат кода PHP, который в данном случае является сообщением об ошибке.
  2. Страница доставляется браузеру (клиенту)
  3. Браузер пытается выполнить код JavaScript, который представляет собой просто сообщение об ошибке php, другими словами, мусор.
Смежные вопросы