簡體   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