簡體   English   中英

AJAX 轉 PHP,無需頁面刷新

[英]AJAX to PHP without page refresh

我在讓我的表單將數據提交到我的 PHP 文件時遇到了一些麻煩。

如果沒有我擁有的 AJAX 腳本,表單會將用戶帶到“xxx.php”並提交數據庫中的數據,但是當我包含此腳本時,它會阻止頁面刷新、顯示成功消息並淡入'myDiv' 但隨后數據庫中沒有數據出現。

任何指向正確方向的指針將不勝感激。 把我的頭發拉到這個上面。

HTML

<form action='xxx.php' id='myForm' method='post'>
    <p>Your content</p> 
    <input type='text' name='content' id='content'/> 
    <input type='submit' id='subbutton' name='subbutton' value='Submit' /> 
</form>
<div id='message'></div>

JavaScript

<script>   
    $(document).ready(function(){
        $("#subbutton").click(function(e){
            e.preventDefault();
            var content = $("#content").attr('value');

            $.ajax({
                type: "POST",
                url: "xxx.php",
                data: "content="+content,
                success: function(html){   
                    $(".myDiv").fadeTo(500, 1);
                },
                beforeSend:function(){
                    $("#message").html("<span style='color:green ! important'>Sending request.</br></br>");
                }
            });

        });
    });
</script>

一些小的更改應該可以讓您啟動並運行。 首先,使用.val()獲取輸入的值:

var content = $("#content").val();

您提到您正在檢查提交按鈕是否isset()但您從未將其值發送到 PHP 函數。 為此,您還需要獲取其值:

var submit = $('#subbutton').val();

然后,在您的 AJAX 函數中正確指定數據:

$.ajax({
    type: "POST",
    url: "xxx.php",
    data: {content:content, subbutton: submit}
    ...

不需要對數據屬性名稱的報價。

在 PHP 方面,您然后檢查像這樣的提交按鈕 -

if('submit' == $_POST['subbutton']) {
    // remainder of your code here

內容將在$_POST['content']可用。

將數據屬性更改為

data:{
    content:$("#content").val()
}

還將屬性錯誤添加到 ajax 中

error:function(e){
   console.log(e);
 }

並嘗試在您的 php 文件中將 var dump 返回到 $_POST。

最重要的是根據您發送的內容向 ajax 添加 dataType 屬性:

dataType: "text" //text if You try with the var dump o json , whatever.

另一種解決方案是:

  $.ajax({
   type: "POST",
   url: "xxxwebpage..ifyouknowhatimean",
   data: $("#idForm").serialize(), // serializes the form's elements.
   dataType:"text" or "json" // According to what you return in php
   success: function(data)
   {
       console.log(data); // show response from the php script.
   }
 });

在 Ajax 請求中像這樣設置數據類型: data: { content: content }

我認為這不是正確的 JSON 格式。

暫無
暫無

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

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