【问题标题】:Ajax, PHP, Javascript to Pull Values from Database after Combo Box SelectionAjax、PHP、Javascript 在选择组合框后从数据库中提取值
【发布时间】:2012-06-01 21:55:24
【问题描述】:

我有一个包含 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);
?>

【问题讨论】:

    标签: php javascript ajax combobox selection


    【解决方案1】:

    jquery。

    doSomething(this.value) 不起作用。

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

    doSomething($(this).val()) 与 jquery

    所有的javascript都可以替换为

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

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

    【讨论】:

      【解决方案2】:

      将这行代码替换为:

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

      替换为:

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

      在您使用 get 方法的 php 文件中,使用 get 方法“网站”中的名称: 喜欢:

      $website=$_GET["website"];
      

      【讨论】:

      • ^ 我很困惑,这正是我所拥有的。
      猜你喜欢
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      相关资源
      最近更新 更多