Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量从JS发布到PHP时出现问题_Javascript_Php_Jquery_Post - Fatal编程技术网

Javascript 将变量从JS发布到PHP时出现问题

Javascript 将变量从JS发布到PHP时出现问题,javascript,php,jquery,post,Javascript,Php,Jquery,Post,我正在尝试向php文件发送一个JSA变量。它没有发生。在类似的情况下,有许多问题得到了回答。我可能也犯了类似的错误。尽管如此,我还是搞不清那是什么 代码如下: main.php <script type="text/javascript"> var socialurl= "<?php echo $url;?>";</script> social-media-share.php <?php $socialurl=$_POST['socialurl

我正在尝试向php文件发送一个JSA变量。它没有发生。在类似的情况下,有许多问题得到了回答。我可能也犯了类似的错误。尽管如此,我还是搞不清那是什么

代码如下:

main.php

<script type="text/javascript"> var socialurl= "<?php echo $url;?>";</script>
social-media-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>

使用JS将social-media-share.php文件调用到main.php中。在此之前,在main.php中定义了JS变量socialurl

变量值会在JS中的警报中弹出,但不会发布到social-media-share.php

我肯定我犯了一些愚蠢的错误。但对于我的生活我无法找出什么


任何帮助都将不胜感激。

我认为问题在于您正在发布到页面,但通过GET请求再次加载,因此您没有加载post请求本身的结果。因此,除非GET on social-media-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");
     });
});
这个底线是做错事$加载(“socialmediashare.php”)

实际上,您希望在.post中包含一个回调函数,用于加载来自该函数的响应


或者,您的social-media-share.php脚本中可能有错误,因此您可以尝试执行
var\u转储($\u POST)
查看实际发布的变量是什么

您回显的
$url
是什么?它没有显示在其他任何地方。我在前面定义了$url,它也被传递到javascript,并显示在警报中。唯一的问题是$.post不起作用在JS代码段中,您正在警告字符串
'socialurl'
,而不是变量
socialurl
。您确定JS变量初始化正确吗?另外,您是否与浏览器开发人员面板检查了POST请求中发送的内容?load函数仅显示一个whatsapp共享链接,该链接将在其消息文本中包含url。我之所以有一个单独的文件,是因为我还有其他所有的社交媒体共享按钮。我不想让它和主页一起加载,从而使页面速度变慢。顺便说一句,我不明白你通过“获取”请求加载是什么意思。我在这里通过“获取”请求加载什么?为什么必须回电话?我只想在social-media-share.php文件中捕获“socialurl”变量。就这些。Rest我可以自己在那里处理。$(“#smp”).load(“socialmedia share.php”);使用这一行,您将再次加载整个php页面。这就是GET请求。当您发布到页面时,除非您将该url保存在任何位置,然后在调用social-media-share.php时从db加载该url,否则该url将丢失。如果您执行post,然后使用回调,那么您将有权访问页面中的数据。回调意味着您将在POST请求点加载数据。然而,当前您正在发布到页面并获得响应,但忽略了响应。如果您只是在浏览器中加载social-media-share.php页面,您是否看到任何错误?但问题是,变量根本没有发布到social-media-share.php!因为,$\u帖子不应该包含一些东西吗?它显示数组(0){}。Rest所有事情都必须在收到post值后发生,不是吗?当调用#smp时,它本身显示为“未定义索引”。而且#smp由共享链接填充,所以数据不能附加到其中。是的,它应该显示一些内容。您是否尝试过回调方法并将文件修改为只执行“print\r($\u POST)”操作,或者您正在访问该文件并看到它?发帖请求不要挂在那里。对不起,我不确定你的PHP水平,所以不确定这对你来说有多新。试试我的回调方法,看看会显示什么
jQuery(function(){
    alert('socialurl');
    $("#smshare").click(function(){
       $("#smp").slideToggle("fast");
       $.post("social-media-share.php", {socialurl: socialurl });
       $("#smp").load("social-media-share.php");
     });
});
$.post( "social-media-share.php", {socialurl: socialurl })
  .done(function( data ) {
//you might need to do some other stuff to data here
    $("#smp").html(data);
  });