2013-04-04 108 views
0

我有一个动态创建的dorpdown列表,用户可以选择通讯。我试图让它工作,所以当你从下拉列表中选择一些东西,然后执行一个PHP文件。我的下拉列表如下:使用javascript onchange执行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); 
?> 

目前这样的:$标题= $ _REQUEST [ “秀”];不起作用,并给出错误未定义的索引:show。所以基本上我有两个问题:
- 当我选择一个时事通讯时,如何获得php文件执行?
- 根据我选择的通讯,我如何从我的数据库获取正确的数据?

我已经尝试了几个例子,我在其他论坛上找到的例子等,但因为我几乎没有经验的JavaScript我不能得到任何工作。如果有人能够给我一个例子,或者把我推向正确的方向,那将会很棒!如果您有任何其他问题,请将其作为评论!

注意 我知道mysql_ *已被弃用,我会变成PDO一旦我得到的一切工作!

+0

这里'回声“<选择ID = \“NieuwsbriefSelect \”name = \“show \”onchange = \“我在这里做什么? \“>”;'你应该放入'onchange =“''javascript函数名或代码。你的文字是否意味着你不知道在这里插入什么? – Voitcus 2013-04-04 08:34:46

+0

是的,我知道我必须使用JavaScript函数,但我不知道是什么。 – Daanvn 2013-04-04 08:36:06

+0

看看AJAX:http://www.w3schools.com/ajax/ – 2013-04-04 08:37:09

回答

0

在这一行

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

你应该把JavaScript代码在onchange=""属性。

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

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

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

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