使用jquery从php获取数据然后再次传递给php

时间:2013-11-13 04:27:11

标签: javascript php jquery wordpress

这是我的设置:

<div class="container">
    <ul>
        <li data-owner="93"><a href="javascript:void(0);"></a></li>
        <li data-owner="94"><a href="javascript:void(0);"></a></li>
        <li data-owner="95"><a href="javascript:void(0);"></a></li>
    </ul>
    <div class="below_list">
        <div class="popup">
            <a href="javascript:void(0);" class="popup-close">
                <img src="<?php echo get_template_directory_uri(); ?>/images/close.jpg">
            </a>
            <div class="slider-wrapper">
                <div class="slider-inner">
                    <img src="<?php echo get_template_directory_uri(); ?>/images/slider.png" />
                    <img src="<?php echo get_template_directory_uri(); ?>/images/slider2.png" />
                    <img src="<?php echo get_template_directory_uri(); ?>/images/slider3.png" />
                </div>
            </div>
            <div class="description">
                <h1 class="title"></h1>
                <h3 class="subtitle"></h3>
                <p class="description"></p>
            </div>
        </div>
    </div>
</div>

每当我点击列表项时,我都会使用var formId = $(this).attr('data-owner');获取数据所有者。这将作为ID。

然后,我必须使用h1

附加到空白$('.title').append('<?php echo get_the_title(formId); ?>');

我理解PHP只执行一次,但我不确定如何提出解决方案。

请注意,所有内容都在一个页面中进行,无需刷新。

3 个答案:

答案 0 :(得分:0)

您需要使用ajax。 您的PHP最初是在页面加载时处理的。但之后的任何事情都不会得到处理。 查看http://api.jquery.com/jQuery.post/上的指南。

您需要将所选的id传递给另一个php页面(在此示例中为backend.php),让它处理(在您的情况下获取标题),并在backend.php中回显结果。

示例代码如下所示。

$.ajax({
    type:"POST",
    url: "backend.php",
    data:"id="+formId , //add the variable you need to pass to the backend.php
    success: function(html){
        $("#response").html(data); //shows the output given in the backend.php in the response div.
    }
});

答案 1 :(得分:0)

两次调用ajax

   $.ajax({
        url: 'a.php',
        data: {name: 'xxxxxx'},
        dataType: 'jsonp',
        success: function(data){

            // do stuff

            // call next ajax function
            $.ajax({ ....call to b.php....});
        }
    });

答案 2 :(得分:0)

如果您必须单独更改h1文本而不更改任何数据库,则可以使用

$('.container ul li').on('click',function(){
      var formId = $(this).attr('data-owner');
      $.ajax({
          type:"POST",
          url: "saveData.php",
          data:"formId="+formId ,
          success: function(data){
               $(".title").text(data); 
          }
      });

});

saveData.php

<?php

//您可以使用$_POST['formId'];

获取您的formID
$formId = $_POST['formId'];

//写query以获取适当database的{​​{1}}数据

//然后formId您从echo结果获得的标题

query

此数据将在echo $formTitle;

中提供

希望这有助于你交配...... :)