亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

必須按下按鈕才能激活php代碼?

必須按下按鈕才能激活php代碼?

PHP
千萬里不及你 2022-08-05 16:07:01
因此,該網站的想法是,當您按下按鈕時,它會從數據庫中刪除相應的行。但是,我的代碼的問題在于,在第一次按下按鈕后,按鈕將填充id變量,然后在下次按下時執行php。我該如何避免這種情況,并讓他php適合并在第一次按下按鈕時執行php?包括嵌入了php的HTML頁面:<!doctype html><html><head><meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1">  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script><title>Untitled Document</title>    <style>table {  font-family: arial, sans-serif;  border-collapse: collapse;  width: 100%;}td, th {  border: 1px solid #dddddd;  text-align: left;  padding: 8px;}tr:nth-child(even) {  background-color: #dddddd;}</style></head><body>    <div class="container-fluid">    <h2 style"text-align:center";>Please enter the item you want to add to the list below </h2><?php$servername = "localhost";$username = "root";$password = "";$dbname = "myDB";$sql = "CREATE DATABASE myDB";$conn = new mysqli($servername, $username, $password, $dbname);if ($conn->connect_error) {    die("Connection failed: " . $conn->connect_error);} $sql = "CREATE TABLE freezerinventory (id INT AUTO_INCREMENT PRIMARY KEY, item VARCHAR(30) NOT NULL,reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)";if(isset($_POST['itemx'])) {$itemvar = $_POST["itemx"];$sql = "INSERT INTO freezerinventory (item)VALUES ('$itemvar')";    $add =  mysqli_query($conn, $sql);}else {    $sql = "";}
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

您可以創建單獨的處理腳本,并將表單提交到按鈕的 URL 路徑“onClick”。不能使用 JS 代碼直接調用 PHP 函數。


查看完整回答
反對 回復 2022-08-05
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

PHP是一種僅在服務器端運行的語言。它不同于在客戶端(瀏覽器上)運行的javascript。

如果您可能注意到,您將永遠不會在其他網站上看到PHP代碼,因為(如果網站使用PHP)它是在服務器端處理的,并且返回的只是HTML + CSS。

如今,我們不會創建這樣的頁面。我們將使用PHP創建我們所謂的API。我們將使用 REST-API 策略。

假設我們將在此地址上托管此 APIwww.mywebsite.com/myapi/myfreezerendoint.php

我們將使用JS請求或發布到這個端點,并使用名為.fetch("www.mywebsite.com/myapi/myfreezerendoint.php", { ... })

我發現了這個關于以MySQL為數據庫的PHP API的有趣教程:https://webdamn.com/create-simple-rest-api-with-php-mysql/


查看完整回答
反對 回復 2022-08-05
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

我已經糾正和美化了所有代碼,最小化了它,現在應該是它:


<?php

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "myDB";

$sql = "CREATE DATABASE myDB";


$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {


    die("Connection failed: " . $conn->connect_error);

$sql = "CREATE TABLE freezerinventory (

id INT AUTO_INCREMENT PRIMARY KEY, 

item VARCHAR(30) NOT NULL,

reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)";


if(isset($_POST['itemx'])) {

  $itemvar = $_POST["itemx"];

  $stmt = $conn->prepare("INSERT INTO freezerinventory (item) VALUES ('?')");

  $stmt->bind_param("s", $itemvar);

  $stmt->execute();

} else {

    //the 'itemx' post parameter isn't set, make an alert or something

}

mysqli_close($conn);

?>

<!doctype html>

<html>

  <head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

    <title>Untitled Document</title>

    <style>

      table {

        font-family: arial, sans-serif;

        border-collapse: collapse;

        width: 100%;

      }


      td, th {

        border: 1px solid #dddddd;

        text-align: left;

        padding: 8px;

      }


      tr:nth-child(even) {

        background-color: #dddddd;

      }

    </style>

  </head>

  <body>

    <div class="container-fluid">

    <h2 style"text-align:center";>Please enter the item you want to add to the list below </h2>

<form action="<?php echo $_SERVER["PHP_SELF"];?>" class="needs-validation" novalidate method="post">


    <div class="form-group">

      <label for="uname"></label>


      <input type="text" class="form-control" id="itemx" placeholder="Enter an item for the freezer here" name="itemx" required>


      <div class="valid-feedback">Valid.</div>


      <div class="invalid-feedback">Please fill out this field.</div>


    </div>


    <button id = "SubmitButton" name = "SubmitButton" type="button submit" class="btn btn-primary">Add to list</button>

</form>

    </div>

<?php


$servername = "localhost";

$username = "root";

$password = "";

$dbname = "myDB";

$aVar = mysqli_connect('localhost','root','','myDB');



$conn = new mysqli($servername, $username, $password, $dbname);


if ($conn->connect_error) {

    die("Connection failed: " . $conn->connect_error);


if(isset($_POST['id'])) {

  $delete = $con->prepare("DELETE FROM freezerinventory WHERE id= ?");

  $delete->bind_param("s", $_POST['id']);

  $delete->execute();

}


$sql = "SELECT * FROM freezerinventory";

$result = mysqli_query($aVar, $sql);

echo "<table><tr>

    <th>Item name</th>

    <th>Date added</th> 

    <th>remove</th>

  </tr>    "; 


while($row = mysqli_fetch_array($result))   {

  echo "      <tr><td>" . $row['item'] . "</td><td>" . $row['reg_date'] . "</td><td><form action='' method='POST'>

    <div class= 'input-group' > <div class='input-group-append'>

        <button class='btn btn-danger'  onclick='deleteitem(".$row['id'].")' id='delete'>Remove</button>

        <input type='hidden' name='id'/>

    </div></div>

    </form></td></tr>";

}

    echo "</table>";

?>

<script>

function deleteitem (id_data) {

  $.post('<?php echo $_SERVER["PHP_SELF"];?>', {id: id_data}, function(data) {

    console.log(data);  //callback data

  });

}


function myFunction() {

  confirm("I am an alert box!");

}


(function() {

  'use strict';

  window.addEventListener('load', function() {


    // Get the forms we want to add validation styles to


    var forms = document.getElementsByClassName('needs-validation');


    // Loop over them and prevent submission


    var validation = Array.prototype.filter.call(forms, function(form) {

      form.addEventListener('submit', function(event) {

        if (form.checkValidity() === false) {

          event.preventDefault();

          event.stopPropagation();

        }

        form.classList.add('was-validated');

      }, false);

    });

  }, false);

})();

</script>

</body>

</html>

它可能仍然需要一些修復,我在那里留下了一些未使用的html元素,但從理論上講,這應該有效。它利用 將數據發送到 。您不必使用,但從理論上講,這應該可以解決您的問題。如果您遇到任何問題,請在我的答案下發表評論。ajaxphpajax


注意:只是為了澄清,我沒有嘗試這樣做,因此可能存在一些錯誤。


查看完整回答
反對 回復 2022-08-05
  • 3 回答
  • 0 關注
  • 181 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號