Javascript 将变量从JS发布到PHP时出现问题
我正在尝试向php文件发送一个JSA变量。它没有发生。在类似的情况下,有许多问题得到了回答。我可能也犯了类似的错误。尽管如此,我还是搞不清那是什么 代码如下: main.phpJavascript 将变量从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
<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);
});