【问题标题】:Execute a php file with javascript onchange使用 javascript onchange 执行 php 文件
【发布时间】:2013-04-04 08:28:10
【问题描述】:

我有一个动态创建的 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!

【问题讨论】:

  • 这里echo "&lt;select id=\"NieuwsbriefSelect\" name=\"show\" onchange=\"what do I do here??? \"&gt;";你应该输入onchange="" javascript函数名称或代码。您的文字是否意味着您不知道在此处插入什么?
  • 是的,我知道我必须在那里使用 javascript 函数,但我不知道是什么。
  • 看看AJAX:w3schools.com/ajax
  • 处理 Ajax 的一些方法,可能更简单,但您需要学习,例如使用。 jQuery.

标签: php javascript onchange


【解决方案1】:

在这一行

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-10
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2017-09-25
      • 2016-04-07
      • 2023-03-26
      相关资源
      最近更新 更多