коротко: нет
долго: браузер на стороне клиента, а PHP является на стороне сервера, весь код PHP выполняется на сервере, прежде чем страница подается в браузер. после того, как страница была подана, клиент/браузер выполняет обслуживаемый html (результат выполнения php на сервере) и javascript. так как к моменту запуска javascript php работает долго.
хотя вы не можете обновить переменную php, вы можете использовать ajax для отправки значения обратно серверу с помощью get/post. то вы можете использовать PHP для присвоить значение переменной сеанса или сохранить его в базе данных, но это будет на обрабатываются PHP на другом исполнении
Edit: выглядит как вопрос был перефразировать немного, так вот некоторый базовый код, который вы должны получить идете в правильном направлении, и этот код будет работать, если вставить в phpfiddle.org
<?php
if(isset($_GET['search'])){
//do your code here
echo 'results for '. $_GET['search'];
}else{ ?>
<script>
//obj for ajax calls
var http = new XMLHttpRequest();
//onload
onload = function(){
//text change
var e = document.getElementById('searchbox');
e.oninput = myHandler;
e.onpropertychange = e.oninput; // for IE8
}
myHandler = function(){
http = new XMLHttpRequest();
http.open("GET", "?search="+document.getElementById('searchbox').value, true);
http.onload = function() {
document.getElementById('result').innerHTML = http.responseText;
}
http.send();
}
</script>
<label>search</label><input type=text id=searchbox /><br />
<div id=result></div>
<?php } ?>
Вы не можете обновлять любую переменную php на стороне клиента без использования ajax. Без использования ajax вы должны использовать форму, которая отправляет содержимое, которое вы искали, и делать все, что вам нравится, с отправленными данными. –