2017-02-06 91 views
0

我想給一個變量發送給JS的PHP文件。它沒有發生。有類似的情況回答了很多問題。我可能正在犯一些類似的錯誤。雖然,我無法弄清楚它是什麼。麻煩從JS發佈變量PHP

的代碼如下;

main.php

<script type="text/javascript"> var socialurl= "<?php echo $url;?>";</script> 

JS

jQuery(function(){ 
    alert('socialurl'); 
    $("#smshare").click(function(){ 
     $("#smp").slideToggle("fast"); 
     $.post("social-media-share.php", {socialurl: socialurl }); 
     $("#smp").load("social-media-share.php"); 
    }); 
}); 

社交媒體share.php;

<?php 
    $socialurl=$_POST['socialurl'] 
    echo $socialurl."<br>"; 
    include('conn.php'); 
    $socialurl = $conn->real_escape_string(trim($_POST['socialurl'])); 
?> 

<a href="whatsapp://send?text=<?php echo $socialurl;?>" data-text="<?php echo $socialurl;?>" data-href="" class="wa_btn wa_btn_s"><img src='images/share.png' width="30" height="30" alt='WhatsApp Share'></a> 

將文件social-media-share.php用JS調用到main.php中。此前該JS變量socialurl在main.php

變量值在JS警報彈出定義但沒有得到發佈到社交媒體share.php

我相信我一定會犯一些愚蠢的錯誤。但是,我的生活無法找出什麼。

任何幫助將不勝感激。

+0

什麼是**'$ url' **你迴音?它沒有顯示在其他地方。 –

+0

我剛纔定義的$ url和其上的JavaScript傳遞過,它體現在警報爲好。唯一的問題是與$。員額不工作 – user3526204

+0

在您的JS代碼片段您可以向字符串''不是變量'socialurl' socialurl''rather。你確定JS變量被正確初始化了嗎? – Rad80

回答

1

我認爲這個問題是你發佈到網頁,但然後通過GET請求再次加載它,這樣你就不會加載POST請求的結果itself.So除非社會媒體 - 的GET share.php顯示數據庫結果我不確定你是否真的加載了你想要的東西。

jQuery(function(){ 
    alert('socialurl'); 
    $("#smshare").click(function(){ 
     $("#smp").slideToggle("fast"); 
     $.post("social-media-share.php", {socialurl: socialurl }); 
     $("#smp").load("social-media-share.php"); 
    }); 
}); 

這個底線是做錯了事。 $( 「#SMP」)負載( 「社交媒體share.php」)。

你真的想在你的回調函數。員額加載從

http://api.jquery.com/jQuery.post/

$.post("social-media-share.php", {socialurl: socialurl }) 
    .done(function(data) { 
//you might need to do some other stuff to data here 
    $("#smp").html(data); 
    }); 

響應或者你可能在你的社交媒體share.php腳本錯誤,所以你可以嘗試做一個var_dump($_POST);看到實際上被張貼哪些變量

+0

加載函數只顯示一個whatsapp共享鏈接,它將在其消息文本中包含url。我有一個單獨的文件的原因是我有所有其他社交媒體分享按鈕也隨之顯示。我不希望它通過加載主頁面來減慢頁面的速度。順便說一句,我不明白你的意思是通過'GET'請求加載。我在這裏通過'GET'請求加載什麼?爲什麼回撥是強制性的?我只是想在social-media-share.php文件中捕獲'socialurl'變量。就這樣。休息我可以在那裏自己處理。 – user3526204

+0

$(「#smp」)。load(「social-media-share.php」);用這行代碼重新加載整個php頁面。這是GET請求。當你發佈到頁面時,除非你將這個url保存在任何地方,然後在你調用social-media-share.php時從db中加載它,它將會丟失。如果您執行該帖子然後使用回調,那麼您將有權訪問該頁面中的數據。回調意味着您將在POST請求的位置加載數據。而目前您正在發佈到該頁面並獲得響應,但忽略它。然後,您再次加載頁面時沒有任何發佈數據 – TommyBs

+0

如果您只是在瀏覽器中加載social-media-share.php頁面,您是否看到任何錯誤 – TommyBs