Ajax,PHP,Javascript在组合框选择后从数据库中提取值

时间:2012-06-01 21:55:24

标签: php javascript ajax combobox selection

我有一个包含Ajax,PHP和Javascript的页面。在该页面上,我有一个选择/组合框的网站。当用户选择一个网站时,我让它调用一个javascript函数,该函数使用Ajax和GET方法发送到PHP文件并执行PHP代码。那个PHP文件,我已连接到数据库(使用用户网站选择来拉取特定行)。我想发送存储在数据库中的一些细节(关于用户选择的网站),并在页面上使用它们来运行其他一些PHP代码。

我似乎无法使用我拥有的代码,我已经尝试了所有我能想到的。

调用javascript函数的选择框代码:

<select name="website" onchange="doSomething(this.value)" />
<option>option 1</option>
<option>option 2</option>
<option>etc.</option>
</select>

使用Ajax调用PHP文件的Javascript函数:

function doSomething(str)
{
if (str == "")
{
 document.getElementById("DIVdisplayID").innerHTML="Nothing Selected";
 return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
    document.getElementById("DIVdisplayID").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","URLHERETOPHPFILEHERE?website="+str,true);
xmlhttp.send();

}

我的显示器DIV:

<div id="DIVdisplayID"></div>

PHP文件根据用户选择的网站访问数据库信息:

<?php
$website=$_GET["q"];

$con = mysql_connect("localhost","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $con);

$result = mysql_query("SELECT * FROM Websites
WHERE WebsiteURL='$website'");

while($row = mysql_fetch_array($result))
{
echo $row['WebsiteDetail1'] . " " . $row['WebsiteDetail2'];
echo "<br />";
}

mysql_close($con);
?>

2 个答案:

答案 0 :(得分:0)

Jquery的。

doSomething(this.value)不起作用。

doSomething(this.options[this.selectedIndex].text))

带有jquery的

doSomething($(this).val())

所有的javascript都可以替换为

$.get("URLHERETOPHPFILEHERE?website="+str, function(data){
    $('#DIVdisplayID').html(data);
});

我假设“URLHERETOPHPFILEHERE”实际上已在您的代码中被替换。

答案 1 :(得分:0)

将以下代码替换为:

xmlhttp.open("GET","URLHERETOPHPFILEHERE?website="+str,true);

替换为:

xmlhttp.open("GET","your php file name with .php extension ?website="+str,true);

并在使用get方法的php文件中使用get方法“website”中的名称: 像:

$website=$_GET["website"];