簡體   English   中英

PHP,ajax和jQuery的Onclick事件不起作用

[英]Onclick event with PHP, ajax and jQuery not working

我想對PHP使用onclick事件以完成以下任務。 我想使用ajax來避免刷新頁面。 我想在事件單擊上創建按鈕。

我不知道如何將div按鈕與ajax結果結合在一起。

這是我的PHP文件: Button.php

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Dymanic Buttons</title>
        <script type= "text/javascript" src ="jquery-2.1.4.min.js"></script>    
        <script type= "text/javascript" src ="test.js"></script>
    </head>
    <body>
        <div>
            <input type="submit" class="button" name="Add_Button" value="Add Button"</>
            <input type="submit" class="button" name="Modify_Button" value="Modify    Button"</>
            <input type="submit" class="button" name="Delete_Button" value="Delete    Button"</>
        </div>

test.js包含以下內容:

$(document).ready(function () {
    $('.button').click(function () {
        var clickBtnValue = $(this).val();

        var ajaxurl = 'ajax.php',
            data = {
                'action': clickBtnValue
            };
        $.post(ajaxurl, data, function (response) {

            alert("action performed successfully");

        });
    });

});

而另一個php是ajax.php

<?php 

if (isset($_POST['action'])){
  switch($_POST['action']){
      case 'Add_Button':
  Add_Button();
  break;
  }

}
function Add_Button(){
    echo '<input type="submit" class="button" name="Test_Button" value ="Test Button"</>';
    exit;
}
?>

您正在調用<input>的值,而不是您將其設置為的名稱。

將您的clickBtnValue更改為此:

var clickBtnValue = $(this).attr('name');

由於它具有Add_Button / Modify_Button / Modify_Button

要將新按鈕附加到您的div,請先為其提供一個id ,以便我們可以繼續調用它:

<div id="my-buttons">

現在在您的ajax請求中,只需將jQuery.append()的html插入div:

$.post(ajaxurl, data, function (response) {
    $('div#my-buttons').append(response);
});

您可能想要確保代碼的每個組件都首先工作。 問題可能出在您的AJAX調用中,它應類似於以下內容:

/** AJAX Call Start **/
    // AJAX call to dict.php
    $.ajax({

        /** Call parameters **/
        url: "ajax.php", // URL for processing
        type: "POST", // POST method
        data: {'action': clickBtnValue}, // Data payload

        // Upon retrieving data successfully...
        success: function(data) {}
});

另外,請確保使用正確的路由到PHP文件,並且PHP文件正在返回有效響應。

編輯:根據jQuery Docs,我相當確定問題出在您的AJAX調用內,特別是$.post()設置。 如果您想保持AJAX呼叫的結構化而不是我建議的結構,請參考此處進行正確的設置。

根據jQuery Docs:

 $.post( "ajax/test.html", function( data ) { $( ".result" ).html( data ); }); 

您可以使用以下命令將請求結果添加到div中:

$.post(ajaxurl, data, function (response) {

   $("div").append(response);
   alert("action performed successfully");

});

請注意,您按鈕的值是“添加按鈕”,而不是“ Add_Button”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM