使用 ajax 调用将 php 变量传递给 javascript 函数并在同一页面上获取响应文本
pass php variable to javascript function using ajax calls and getting response text on same page
我在 php 页面 [search.php] 上使用 php sql 数据库连接从变量“$[=33=”中的数据库中获取数据]" 并将其传递给 javascript 函数,其中 ajax 调用捕获该变量并将其传递给另一个 php 页面 [function.php],这将执行一些函数并发送在 id="rssoutput" 的 div 中返回到 search.php 的响应文本见下面给出的代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>search</title>
<script>
function showRSS(str) {
if (str.length==0) {
document.getElementById("rssOutput").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("rssOutput").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","function.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php
$con=mysql_connect("localhost","root","");
if(!$con)
{
die("could not connect:".mysql_error());
}
mysql_select_db("dbname",$con);
$query="SELECT * FROM table ";
$result=mysql_query($query);
while($runrows = mysql_fetch_assoc($result))
{
$url = $runrows ['URL'];
echo "<input type='button' class='myButton' onclick='showRSS($url);' name='artbttn' >
<div class='container' id='rssOutput' ></div>";
}
mysql_close($con);
?>
</body>
</html>
所以,我想要实现的是从另一个页面[function.php]获取数据并将其显示在同一页面[search.php]中的div"rssOutput" 当我点击一个按钮时。谁能告诉我这怎么可能。
您可能希望在将其发送到下一页之前使用url编码,
$url = urlencode($runrows ['URL']);
然后用这样的引号将 $url 括起来:onclick='showRSS(\"$url\");'
echo "<input type='button' class='myButton' onclick='showRSS(\"$url\");' name='artbttn' >
<div class='container' id='rssOutput' ></div>";
这应该有效。
编辑: 用 mysqli
重写 mysql 查询
<?php
$conn = new mysqli('localhost', 'user', 'password', 'dbname');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="SELECT * FROM mytbl";
$result=$conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$url = urlencode($row['url']);
echo "<input type='button' class='myButton' onclick='showRSS(\"$url\");' name='artbttn' ><div class='container' id='rssOutput'></div>";
}
} else {
echo "0 results";
}
$conn->close();
?>
我不知道为什么我没有得到这个 before.There 我认为是 url 通过的问题。您需要做的是创建一个会话,如我所展示的。
while($runrows = mysql_fetch_assoc($result))
{
$url = urlencode($runrows ['URL']);
$_SESSION['u']=$url;
<input type='button' onclick='showRSS()' class='myButton' name='artbttn' >
<div class='container' id='rssOutput' ></div>
}
mysql_close($con);
?>
<?php
echo<<<script;
<script>
function showRSS() {
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("rssOutput").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","function.php",true);
xmlhttp.send();
}
</script>
script;
?>
</html>
将以下行添加到 function.php
<?php
session_start();
if(isset($_SESSION['u']){
$url=$_SESSION['u'];
}
?>
并在您的页面上使用此 url。
我在 php 页面 [search.php] 上使用 php sql 数据库连接从变量“$[=33=”中的数据库中获取数据]" 并将其传递给 javascript 函数,其中 ajax 调用捕获该变量并将其传递给另一个 php 页面 [function.php],这将执行一些函数并发送在 id="rssoutput" 的 div 中返回到 search.php 的响应文本见下面给出的代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>search</title>
<script>
function showRSS(str) {
if (str.length==0) {
document.getElementById("rssOutput").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("rssOutput").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","function.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php
$con=mysql_connect("localhost","root","");
if(!$con)
{
die("could not connect:".mysql_error());
}
mysql_select_db("dbname",$con);
$query="SELECT * FROM table ";
$result=mysql_query($query);
while($runrows = mysql_fetch_assoc($result))
{
$url = $runrows ['URL'];
echo "<input type='button' class='myButton' onclick='showRSS($url);' name='artbttn' >
<div class='container' id='rssOutput' ></div>";
}
mysql_close($con);
?>
</body>
</html>
所以,我想要实现的是从另一个页面[function.php]获取数据并将其显示在同一页面[search.php]中的div"rssOutput" 当我点击一个按钮时。谁能告诉我这怎么可能。
您可能希望在将其发送到下一页之前使用url编码,
$url = urlencode($runrows ['URL']);
然后用这样的引号将 $url 括起来:onclick='showRSS(\"$url\");'
echo "<input type='button' class='myButton' onclick='showRSS(\"$url\");' name='artbttn' >
<div class='container' id='rssOutput' ></div>";
这应该有效。
编辑: 用 mysqli
重写 mysql 查询<?php
$conn = new mysqli('localhost', 'user', 'password', 'dbname');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="SELECT * FROM mytbl";
$result=$conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$url = urlencode($row['url']);
echo "<input type='button' class='myButton' onclick='showRSS(\"$url\");' name='artbttn' ><div class='container' id='rssOutput'></div>";
}
} else {
echo "0 results";
}
$conn->close();
?>
我不知道为什么我没有得到这个 before.There 我认为是 url 通过的问题。您需要做的是创建一个会话,如我所展示的。
while($runrows = mysql_fetch_assoc($result))
{
$url = urlencode($runrows ['URL']);
$_SESSION['u']=$url;
<input type='button' onclick='showRSS()' class='myButton' name='artbttn' >
<div class='container' id='rssOutput' ></div>
}
mysql_close($con);
?>
<?php
echo<<<script;
<script>
function showRSS() {
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("rssOutput").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","function.php",true);
xmlhttp.send();
}
</script>
script;
?>
</html>
将以下行添加到 function.php
<?php
session_start();
if(isset($_SESSION['u']){
$url=$_SESSION['u'];
}
?>
并在您的页面上使用此 url。