<span class="semi-bold result-name">Search</span>
是我的代码的一部分,基本上是使用javascript - 当你在文本框中输入时,单词搜索会被替换为文本框中输入的内容。
有没有办法让它也更新php字符串?
$target = "Result here";
希望这是有道理的。
答案 0 :(得分:4)
简短:没有
long:javascript是客户端,而php是服务器端,在将页面提供给浏览器之前,所有php代码都在服务器上执行。在页面被提供之后,客户端/浏览器执行服务的html(在服务器上执行php的结果)和javascript。因为当javascript运行时,php已经很久没有运行了。
虽然您无法更新php变量,但您可以使用ajax使用get / post将值发送回服务器。然后,您可以使用php将值分配给会话变量或将其存储在数据库中,但它将在不同的执行中由php处理
修改强> 看起来这个问题有点重写,所以这里有一些基本代码可以让你朝着正确的方向前进,如果粘贴到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 } ?>
答案 1 :(得分:0)
你可以通过ajax做到这一点。通过ajax将搜索词发送到服务器端处理函数,然后将搜索词分配给$ target。您可能必须使用onkeypress或其他相应的事件,以便将更改后的值发送到服务器端,并在每次更改值时将其保存在$ target中。