复选框如何调用php代码,然后取回要打印在textarea中的结果?

时间:2018-06-24 23:18:31

标签: javascript php jquery ajax

我正在开发短信发件人表格。表单包含三个组成部分:

  • 收件人编号的文本区域。
  • 按摩内容的文本区域。
  • 包括订阅者作为接收者的复选框。

然后我想我需要分三步走:

1-检查是否已选中该复选框。

2-读取数据库中的订户号。

3-将订阅者写入接收者文本区域。

我所做的是创建JavaScript函数,该函数在更改时由复选框调用,然后通过JavaScript函数调用php代码,最后,在php中使用JavaScript将数字附加到文本区域中。不幸的是,它没有用。我必须进行研究,发现必须使用Ajax来调用php代码。

我以前没有使用过ajax,但我认为这很困难,我是脚本编写的初学者。另外,我更喜欢使用这种实现方式,而不是在提交表单后读取数据库。

我真的很困惑该怎么办。这是我第一次需要在彼此之间使用脚本和php!我需要您的帮助,最简单的实施方法是什么。

欢迎新的想法和方法。

更新:

由于大多数人建议,我决定使用Ajax。

这是form.php代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
      <script language="javascript" type="text/javascript">
         $(document).ready(function() {

          var checkbox = document.getElementById('subscribers').checked;

         //Check if checkbox is checked
         if (checkbox === true) {
         //Read databank for Results
          document.getElementById("to").value = "result  should be here.";
          $.ajax({
                type: 'POST',
                url: 'sms/readSubscriber.php',
                data: {'variable': dataPhp},
                complete: function(r){
                  var subscriberNumbers = r.responseText;
                   document.getElementById('to').innerHTML = subscriberNumbers;
               }
              });


         } else {
           document.getElementById("to").value = "";
         }


         }); 


         function doalert() {
         //Check if checkbox is checked
         var checkboxElem = document.getElementById("subscribers").checked;
         if (checkboxElem === true) {
         //Read databank for Results
          document.getElementById("to").value = "result  should be here.";
          $.ajax({
                type: 'POST',
                url: 'sms/readSubscriber.php',
                data: {'variable': dataPhp},
                complete: function(r){
                  var subscriberNumbers = r.responseText;
                   document.getElementById('to').innerHTML = subscriberNumbers;
               }
              });


         } else {
           document.getElementById("to").value = "";
         }

         }


      </script>
   </head>
   <body>
      <fieldset style="width:50%;margin:auto" dir=ltr>
         <form action="" method="POST">
            <table border="0" cellspacing="3" cellpadding="3">
               <tr>
                  <td>Your Balance</td>
                  <td><input type="text" class="form-control" name="Balance" size="20" disabled="disabled" value="<?php
                     echo $Credits;
                     ?>"></td>
               </tr>
               <tr>
                  <td>Mobile No.</td>
                  <td><textarea textarea class="form-control" id="to" name="Mobile" cols="30" rows="5"></textarea><br></td>
                  <td>
                     <div class="checkbox">
                        <label><input type="checkbox" value="subscribers"  onchange="doalert()" id="subscribers" checked>Subscribers</label>
                     </div>
                  </td>
               </tr>
               <tr>
                  <td>Message</td>
                  <td><textarea class="form-control" name="Text" cols="30" rows="5" required></textarea></td>
               </tr>
               <tr>
                  <td>&nbsp;</td>
                  <td><input type="submit" name="Go" value="Send SMS" /></td>
               </tr>
            </table>
         </form>
      </fieldset>
   </body>
</html>

这是readSubscriber.php

<?php
require_once('../db_functions.php');

// Connect to the database
$connection = db_connect();
//if connection fails, stop script execution
if (mysqli_connect_errno()) {
    echo "Error: " . $sql . "Connect failed: " . mysqli_connect_error();

} else {

    $query  = "SELECT * FROM phoneSubscribers";
    // Query the database
    $result = db_isExist($query);

    if ($result) {
        $result = db_fetch($query);
        echo json_encode($result);
    } else {
        echo "No result";
    }


}
?>

1 个答案:

答案 0 :(得分:0)

请使用代码更新您的问题,否则将很难提供帮助。 为此,您必须使用Ajax和jquery。

确保已安装jquery。

var checkbox = document.getElementById('checkboxInput').checked;

//Maybe you want to pass something to the PHP file? 
var dataPhp = "";

//Check if checkbox is checked
if (checkbox === true) {
  //Read databank for Results
    $.ajax({
          type: 'POST',
          url: 'yourFile.php',
          data: {'variable': dataPhp},
          complete: function(r){
            var subscriberNumbers = r.responseText;
             document.getElementById('receivers').innerHTML = subscriberNumbers;
         }
        });
}

要获取发送到php文件的变量,只需使用

$dataFromScript = $_POST['variable'];

yourFile.php中,您必须获取MySQL数据库的所需值。

如果它是一个数组,请确保使用JSON进行编码。

echo json_encode($resultArray);

之后,$resultArray变量将显示在您的

 <div id="receivers"></div>