如何在html中的onchange方法中调用php函数?

时间:2011-10-18 05:50:42

标签: php

我是PHP新手(我正在研究android)。我的页面包含一个表,它根据数据库的变化而变化。我的表包含下拉选项,如果我在拖拽选项中更改任何内容,我们必须将这些输入到datebase中。我正在调用脚本函数“updatePrepStatus()” 。它不起作用,请帮助我。

 <script >
     function updatePrepStatus(itemName) {    

       alert(itemName);
       <?php
                    echo " updatePrepStatus-- ";
          ?> ;  

     }      
</script>

<?php

                         //$Order_no=$_GET['OrderId'];
                         $result =  mysql_query("select Menu_Item_Name, Menu_Item_quantity,Menu_Item_Price,PreparationStatus from order_details where order_id='$Order_no' && status!='C' ");
                         $rows_count = mysql_num_rows($result);

                         $i=0;
                         $ItemName="";
                         while( $row=mysql_fetch_array($result) )
                         {
                            if($i==0)
                            {
                                echo "<table id='table1' style='WIDTH: 400px;' border='3' cellSpacing=0 cellPadding=3 width=693 align=center>
                                    <tbody>";
                                echo "<tr><td><font color='#0000e' size='2'><strong>Item
                                    Name</strong></font></td>
                                  <td><font color='#0000e'
                                    size=2><strong>Quantity</strong></font></td>
                                  <td><font color='#0000e'
                                    size=2><strong>Price</strong></font></td>
                                  <td><font color='#0000e'
                                    size=2><strong>Status</strong></font></td></tr>";
                            }
                            if($row['PreparationStatus']=='NEW')
                                $ps2='READY';
                            else
                                $ps2='NEW';
                            $ItemName=$row['Menu_Item_Name'];
                            echo $ItemName;
                            echo"<tr>
                              <td><font color='#0000e' size='2'>".$row['Menu_Item_Name']."</font></td>
                              <td><font color='#0000e' size='2'>".$row['Menu_Item_quantity']."</font></td>
                              <td><font color='#0000e' size='2'>".$row['Menu_Item_Price']."</font></td>
                              <td><SELECT NAME='Select[]' id='PrepStatus' onChange=updatePrepStatus($ItemName)><OPTION VALUE='NEW'><font color='#0000e' size='2'>".$row['PreparationStatus']."
                                                       </OPTION><OPTION VALUE='READY'><font color='#0000e' size='2'>$ps2</OPTION></SELECT>&nbsp;</font></td></tr>";
                            $i++;
                         }
                         if($i==0)
                         {
                             echo "<p align='center'>NO RECORDS<strong><font color='white' size='3'>";
                         } 
                         else
                         {
                                echo "</tbody></table></p>
                                  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
                                  <p>
                                  <p></p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                  &nbsp;&nbsp;&nbsp;
                                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                                  <input value='Submit' type='submit' name='submit'>";  
                         }
                     ?>

请帮帮我。

3 个答案:

答案 0 :(得分:1)

看起来好像是在混淆PHP(在作为网络服务器的计算机上运行)与javascript(在浏览器中运行,网站的访问者正在运行)。他们无法直接互动。

但是,它们可以使用通常称为AJAX的机制进行交互。这需要您编写将接收请求并发送响应的服务器端脚本,以及发送请求并处理来自服务器的响应的客户端JavaScript。

使用PHP和jQuery的快速示例:

如果您编写服务器脚本并将其安装在http://www.exampler.com/ajaxserver.php

<?php

echo (json_encode (array (
    'response' => $_GET ['message'], 
    'luckynumber' => mt_rand ())));
?>

在客户端:

$.ajax ({
    url: 'http://www.example.com/ajaxserver.php',
    datatype: 'json',
    method: 'GET',
    data: {
        message: 'Hello, this is the message that will be returned by AJAX!'
    },
    success: functioon (data, status, xhr)
    {
        alert (data.response);
        alert ('Your lucky number is: ' + data.luckynumber);
    }
});

答案 1 :(得分:1)

您误解了服务器端代码(例如PHP)和客户端代码(即Javascript)之间的区别。

无法从您的Javascript调用PHP函数。您可以 ,如果需要,可以使用AJAX调用来响应Javascript事件来调用您的服务器,并且可以将AJAX调用输入到您必须专门创建的新PHP页面中。但是,你不清楚你需要这样的东西,因为要确定你想要做什么有点困难 - 如果它不是需要对服务器进行新调用的东西,那么你就不需要这个。

我建议您需要了解更多关于Web开发的知识,以便了解客户端和服务器端代码之间的区别,以便您在此时正确理解为什么这不起作用。我们可以推荐任意数量的复杂解决方案,我们会为您提供大量代码,但您需要根据Web应用程序的工作原理了解某些内容有效或无效的原因。

Here's one articleanother只是为了让您入门。

答案 2 :(得分:0)

<?php
include 'db_config.php';

$query = "SELECT * FROM Category ORDER BY c_id ASC";

// Execute it, or return the error message if there's a problem.

$result = mysql_query($query) or die(mysql_error());?>
<select id='cat' name='cat' class='input2' onselect="function myfunction()"> <option value='Select '>Select Category</option>;

<?php while($row = mysql_fetch_assoc($result)) {

  $dropdown .= "\r\n<option value='{$row['c_id']}'>{$row['c_name']}</option>";

}

$dropdown .= "\r\n</select>";

echo $dropdown;


?>