我有一个动态创建的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!
答案 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();
}
试试这个 如果因为我没有运行代码而出现问题
,请原谅