将javascript值传递给PHP

时间:2016-05-07 09:28:54

标签: javascript php

作为网络开发人员我很新,我发现自己试图解决问题。

我想在不使用任何表单方法的情况下将值JavaScript传递给PHP。

这是我的PHP代码(它是一个幻灯片,我在onclick标签中放置img事件以获取被点击的图像的id,然后将id信息存储在我的JavaScript文件上的变量。问题是:如何从JavaScript文件中将该变量传递给PHP?):

提前致谢。 最好的问候,

function getIdImage(clicked_id)
{
    // alert(clicked_id);

    var ClickedId= clicked_id;

  }
<div class="row">
  <div class="col-xs-12 col-md-12 col-lg-12 widhest">
     <div class="bx_wrapper_photo_below">
        <ul id="bx_slider_photo_below" class="bx_viewport_photo_below">

         <?php while($line = mysqli_fetch_assoc($outcomesListPhotos1)) {?>
            <li>
                     <img src="photos/<?php echo utf8_encode($line['photo']); ?>" class="img-responsive" onclick="getIdImage(<?php echo utf8_encode($line['id_photo']);?>)">                
             </li>

         <?php }?>
        </ul>

        <a class="pager-prev_below"><i class="icon-chevron-left"></i></a>
        <a  class="pager-next_below"><i class="icon-chevron-right"></i></a>
    </div>
   </div>
</div>

的Fabio

3 个答案:

答案 0 :(得分:2)

如果您使用的是标准设置,那么每次向服务器发出请求时,您的PHP代码都会从头到尾运行。它不会像您在页面上的Javascript代码那样“按需”运行。因此,为了将值传递给PHP脚本,您必须向服务器(PHP代码所在的位置)发送请求,并在请求有效负载内传递所需的值。请求可以通过简单链接,常规表单或XHR发送。如果你不想重新加载页面,但是你想在服务器上运行一些代码,那么在完成后,在浏览器上做一些事情,那么你选择的工具就是XHR。

为了发送XHR,您可以从头开始自己构建它,或者您可以使用其中许多库中的一个,这当然是推荐的路径。假设你想使用jQuery:

function getIdImage(clicked_id)
{       
    jQuery.ajax({
       url: '/url/to/my/script.php',
       type: 'POST',
       dataType: 'json',
       data: { clicked_id: clicked_id },
       success: function(result) {
           // This function will be called when the server returns a success (200 OK) response
           console.log(result);
           alert('Yay!');
       },
       error: function(xhr) {
            // This function is called when the server fails to process the request, for whatever reason
            console.log(xhr);
            alert('Nay!');
       }
    });
}

在您的服务器上,您将拥有一个处理此请求的脚本,您在URL中指出的脚本,并且您将能够使用在请求中传递给脚本的任何有效负载

<?php

$data = json_decode($_POST);

echo "The ID of the clicked image is: " . $data->clicked_id;

当然这个例子不会做太多,它只会给回显的字符串返回一个响应。根据你想要做的事情,你需要在做一些有意义的计算之后建立一个响应,并且响应应该本身是JSON格式的(使用旧的json_encode内置的PHP函数)。

答案 1 :(得分:0)

您需要发送一条请求,其中包含您可以使用的AJAX数据,如评论中所述。

这里是JQuery ajax的例子:

$.ajax({
  url: "test.html",
  context: document.body
}).done(function() {
  // Available informations
});

答案 2 :(得分:0)

您可以使用表单传递变量。除了表单之外,没有其他方法可以传递php变量。

      <form id="WOW" action="" method="get">
         <input id="Num" name="clicked_id" type="hidden" value=""/>
       </form>


       <script type="text/javascript">
       $(document).ready(function){
          $('#WOW').submit(function(event){
              event.preventDefault();
              $data = $('#WOW').serialize();
              $url = $('#WOW').attr('action');
              //your variable is posted to that file!
              $.post($url,$data,function(data){
                console.log('Veriables sent! and data recieved is:' + data);
              });
          });
       });

       function getIdImage(clicked_id)
        {
           $('#Num').val(clicked_id);
            $('#WOW').submit();
     }
  </script>