繁体   English   中英

使用AJAX更改PHP db_query参数

[英]Changing a PHP db_query parameter with AJAX

假设我有这段代码:

$templatesf = $DB->query('SELECT * FROM templates WHERE category="something"');

有没有办法使用javascript / AJAX更改“内容”? 例如:

function changesomething(selse){
    if (selse == '1'){
        something = 'this'
    }else{
        something = 'that'
    }
}

您需要放置一个变量而不是该变量,然后将ajax变量传递给该方法。

您将使用$ _POST捕获变量并将其放置,而不是放置先前的变量。

您也可以使用默认值(以防万一,或者传递的POST错误)。

以下将是您的输入页面,从这里您将调用ajax处理程序来处理something

<html>
  <head>
    <script language="javascript" type="text/javascript">

           //Browser Support Code
     function ajaxFunction(){
          var ajaxRequest;  // The variable that makes Ajax possible!

          try{
            // Opera 8.0+, Firefox, Safari
              ajaxRequest = new XMLHttpRequest();
             }
          catch (e){
                // Internet Explorer Browsers
                 try{
                     ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                    }
                 catch (e) {
                         try{
                           ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                          }
                       catch (e){
                              // Something went wrong
                                alert("Your browser broke!");
                                return false;
                       }
                 }
           }
           // Create a function that will receive data 
           // sent from the server and will update
           // div section in the same page.
           ajaxRequest.onreadystatechange = function(){
                 if(ajaxRequest.readyState == 4){
                     var ajaxDisplay = document.getElementById('ajaxDiv');
                     ajaxDisplay.innerHTML = ajaxRequest.responseText;
                 }
           }
          // Now get the value from user and pass it to
          // server script.
         var somedata = document.getElementById('something').value;
         var queryString = "?something=" + somedata ;
         ajaxRequest.open("GET", "ajax-example.php" + 
                          queryString, true);
         ajaxRequest.send(null); 
  }
 </script>
</head>
<body>
 <form name='myForm'>
    Something: <input type='text' id='something' /> <br />

      <input type='button' onclick='ajaxFunction()' 
                          value='Query MySQL'/>
 </form>
 <div id='ajaxDiv'>Your result will display here</div>
 </body>
</html>

下面是PHP代码来处理您的请求并处理您的something

  <?php
    $dbhost = "localhost";
    $dbuser = "dbusername";
    $dbpass = "dbpassword";
    $dbname = "dbname";
//Connect to MySQL Server
    mysql_connect($dbhost, $dbuser, $dbpass);
//Select Database
    mysql_select_db($dbname) or die(mysql_error());
// Retrieve data from Query String
    $something = $_GET['something'];

// Escape User Input to help prevent SQL Injection
    $something = mysql_real_escape_string($something);
//build query
    $query = "SELECT * FROM ajax_example WHERE something = '$something'";
    $qry_result = mysql_query($query) or die(mysql_error());

//Build Result String
    $display_string = "<table>";
    $display_string .= "<tr>";
    $display_string .= "<th>Name</th>";
    $display_string .= "<th>something</th>";
    $display_string .= "<th>other</th>";
    $display_string .= "<th>blahblah</th>";
    $display_string .= "</tr>";

    // Insert a new row in the table for each person returned
    while($row = mysql_fetch_array($qry_result)){
       $display_string .= "<tr>";
       $display_string .= "<td>$row[name]</td>";
       $display_string .= "<td>$row[something]</td>";
       $display_string .= "<td>$row[other]</td>";
       $display_string .= "<td>$row[blahblah]</td>";
       $display_string .= "</tr>";

    }
   echo "Query: " . $query . "<br />";
   $display_string .= "</table>";
   echo $display_string;
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM