0

我有一个动态创建的 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"]; 不起作用并给出错误未定义索引:显示。所以基本上我有 2 个问题:
-当我选择时事通讯时,如何让 php 文件执行?
-如何根据我选择的时事通讯从我的数据库中获取正确的数据?

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

注意 我知道 mysql_* 已被弃用,一旦一切正常,我将更改为 PDO!

4

2 回答 2

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();
}

试试这个
如果出现问题,请原谅,因为我没有运行代码

于 2013-04-04T09:30:44.600 回答
0

在这一行

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

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

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

我建议,如果您已更改为 PDO 或 mysqli,则通过(not )传递titel变量。例如,您的函数可以通过或类似的方式调用您的 php 文件(例如:“myfile.php”) 。$_GET$_REQUESTchangeSelect()"myfile.php?titel="+document.getElementById("NieuwsbriefSelect").value

于 2013-04-04T08:45:09.997 回答