使用javascript onchange执行php文件

时间:2013-04-04 08:28:11

标签: php javascript onchange

我有一个动态创建的dorpdown列表,用户可以在其中选择新闻简报。我试图让它工作,所以当你从下拉列表中选择一些东西然后执行一个PHP文件。我的下拉列表如下所示:

<?php
echo "<select id=\"NieuwsbriefSelect\" name=\"show\" onchange=\"what do I do here???  \">"; 
echo "<option size =30 selected>Select</option>";
if(mysql_num_rows($sql_result)) 
{ 
while($row = mysql_fetch_assoc($sql_result)) 
{ 
echo "<option value=\"$row[Titel]\">$row[Titel]</option>"; 
} 

} 
else {
echo "<option>No Names Present</option>";  
} 
?>

我的php文件看起来像这样:

<?php 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL); 
?>
<?php
$title = $_REQUEST["show"];
mysql_connect('localhost','root','root'); 
mysql_select_db('NAW') or die (mysql_error()); 
$strSQL = "SELECT Content from NAW.Mail where Titel = '".$title."' ";

$sql_result = mysql_query($strSQL); 

$row = mysql_fetch_assoc($sql_result);  


$file = 'nieuwsbrief.txt';

$current = urldecode($row["Content"]);

file_put_contents($file, $current);
?>

目前这个:$ title = $ _REQUEST [“show”];不工作,并给出错误未定义索引:显示。基本上我有两个问题:
- 当我选择新闻通讯时,如何让php文件执行? - 根据我选择的时事通讯,如何从我的数据库中获取正确的数据?

我已经尝试了几个我在其他论坛上找到的例子,但由于我几乎没有使用javascript的经验,我无法得到任何工作。如果有人能给我一个例子或推动我朝着正确的方向前进,那就太好了!如果您有任何其他问题,请将其作为评论!

注意 的 我知道mysql_ *已被弃用,一旦我开始工作,我将改为PDO!

2 个答案:

答案 0 :(得分:0)

在这一行

echo "<select id=\"NieuwsbriefSelect\" name=\"show\" onchange=\"what do I do here???  \">";

您应该在onchange=""属性中添加JavaScript代码。

例如,你可以调用一个函数,让它命名为changeSelect(),它会(我猜)加载php文件的内容。你可以通过Ajax来做到这一点。我不会解释得更多,因为这个主题很广泛,你需要更多的研究。

我建议,如果你已经改为PDO或mysqli,那么你将titel变量传递给$_GET(不是$_REQUEST)。例如,您的changeSelect()函数可以通过"myfile.php?titel="+document.getElementById("NieuwsbriefSelect").value或类似的方式调用您的php文件(例如:“myfile.php”)。

答案 1 :(得分:0)

使用ajax的简单方法。

 <?php
echo "<select id=\"NieuwsbriefSelect\" name=\"show\" onchange='hello(value)'>"; 
echo "<option size =30 selected>Select</option>";
if(mysql_num_rows($sql_result)) 
{ 
while($row = mysql_fetch_assoc($sql_result)) 
{ 
echo "<option value=\"$row[Titel]\">$row[Titel]</option>"; 
} 

} 
else {
echo "<option>No Names Present</option>";  
} 
?>

比javascript文件更像

   function hello(value)
{
    var xmlhttp;

    if(window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();

    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState==4)
        {
            //nothing is here because you want to put the result in file
        }
    }
    xmlhttp.open("GET","yourphpcode.php?val="+value,true);
    xmlhttp.send();
}

试试这个 如果因为我没有运行代码而出现问题

,请原谅