4

更新:哇,这是有史以来最快的响应,而且在几分钟内就有这么多答案。惊人。好的,这就是我想要做的。 http://edvizenor.com/invoice33/

我想即时编辑这张发票,但是当我点击顶部的蓝框时,我想预览或在下一页上看到此内容,其中包含 php var 回显。

这个蓝色框稍后将更改为底部的按钮,但我正在使用它进行测试。

如您所见,它调用了 ajax 脚本,但我需要将编辑后的 ​​div 内容发送给一个 php var,我可以在预览页面上回显它。如果我可以把它放在一个 php var 中,我会在下一页上用它做我想做的事情。那有意义吗?谢谢你们的快速回复。

旧帖子

是否可以使用 jQuery 获取内容,div然后将它们放在 PHP var 中以通过 GET 或 POST 发送?

我可以div像这样使用 jQuery 获取内容:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

    <script>   
       $(document).ready(function() 
       {
           $("#MyButton").click(function()
           {
               var htmlStr = $("#MyDiv").html();
           });
        });
    </script>

但是如何将 jQuery var 放入 php var 中。我也需要按一下按钮来做到这一点。这不包含在上面的代码中。我需要,因为div文件是可变的,当我点击 UPDATE 并通过 PHP 发送时,它需要有最新的内容。

4

10 回答 10

5

根据您的情况,您正在尝试将 JavaScript 变量发送到 PHP。唯一常见的方法是以 JSON 格式进行交换,

例如,假设我们有基本的文本编辑器

查询:

$($document).ready(function(){

   $("#submit-button").click(function(){
       $.post('yourphpscript.php', {
             //this will be PHP var:   //this is JavaScript variable:   
             'text'                : $("#some_text_area").text()

        }, function(response){
            //To avoid JS Fatal Error: 
            try {
                var result = JSON.parse(response);
                //get back from PHP    
                if ( result.success){ alert('successfully changed') } 
               } catch(e){
              //response isn't JSON
             }
         });

   }); 

});

PHP 代码

<?php

/**
 * 
 * So we are processing that variable from JavaScript
 */
if ( isset($_POST['text']) ){
  //do smth, like save to database
}


/**
 * Well if you want to show "Success message"
 * that div or textarea successfully changed
 * you can send the result BACK to JavaScript via JSON  
 */

$some_array = array();
$some_aray['success'] = true;

die( json_encode($some_array) );
于 2012-06-11T21:57:09.853 回答
4

您需要使用 ajax 将值发送到您的服务器。

var html = $('#myDiv').html();

$.ajax({
   type: 'POST',
   url: '/SomeUrl/MyResource.php',
   data: JSON.stringify({ text: html }),
   success: function(response)
   {
      alert('Ajax call successful!');
   }
});
于 2012-06-11T21:45:39.630 回答
4

您可以使用隐藏的表单字段并使用 jQuery 将隐藏字段的值设置为该值,因此当单击按钮并提交表单时,您的 PHP 可以像其他任何表单元素一样拾取它(使用$_POST)。或者,您可以使用AJAX向您的 PHP 页面发出异步请求。这可能更简单。这是一个例子:

$("#myButton").click(function() {
    var htmlStr = $('#myDiv').html();

    $.post("mypage.php", { inputHTML : htmlStr },
    function(data) {
        alert("Data returned from mypage.php: " + data);
    });
}
于 2012-06-11T21:46:32.600 回答
4

您需要的是 AJAX(参见http://en.wikipedia.org/wiki/Ajax_(programming ))

基本思想是通过调用 php 脚本等方式使用 javascript 发送 http 请求并等待响应。

使用纯 Javascript AJAX 请求有点不方便,但由于您已经在使用 jQuery,您可以使用这个库。有关完整概述,请参阅http://api.jquery.com/jQuery.ajax/

客户端的代码将是这样的:

$.ajax({
    url:'http://example.com/script.php',
    data:'var=' + $('#myDiv').html(),
    type:'GET'
    success:function(response) {
        console.log(response) // Your response
    },
    error:function(error) {
        console.log(error) // No successful request
    }
});

在你的script.php你可以做这样的事情:

$var = $_GET['var'];

// Do some processing...

echo 'response';

并且在您的 javascript 控制台中会出现该字符串response。在基于 ajax 的现代应用程序中,发送和接收数据的最佳实践方式是通过JSON

因此,要在您的请求和响应中处理更大的数据集,您可以执行以下操作:

$.ajax({
    url:'http://example.com/script.php',
    data:{
        var:$('#myDiv').html()
    },
    type:'GET'
    success:function(response) {
        console.log(response) // Your response
    },
    error:function(error) {
        console.log(error) // No successful request
    }
});

在您的 PHP 代码中,您可以使用$someArray = json_decode($_GET['var'])为 PHP 解码 JSON(它将返回一个关联数组)并将数组$jsonString = json_encode($someArray)编码为 JSON 字符串,您可以在 javascript 中将其作为常规 JSON 返回和处理。

我希望这可以帮助你。

于 2012-06-11T21:57:21.333 回答
2

是的,有可能

<script type="text/javascript">
$(document).ready(function(){
  $('#MyButton').click(function(){
   $.post('sendinfo.php',
    {
     data: $('#data').html()
    },
    function(response){
     alert('Successfully');
    });
  });
 });
</script>

<div id="data">Here is some data</div>
于 2012-06-11T21:49:35.000 回答
1

使用 ajax 向 php(服务器)发送值。这里有一个很好的 ajax 教程http://www.w3schools.com/jquery/jquery_ajax.asp

于 2012-06-11T21:45:24.940 回答
1

你应该只使用 Ajax 来发送你的变量。

$.ajax({
   url:'whateverUrl.php',
   type:'GET',
   data:{
       html : htmlStr
   }
});
于 2012-06-11T21:45:34.287 回答
1

使用 AJAX:

$("#MyButton").click(function() {
    var htmlStr = $("#MyDiv").html();

    $.ajax({
      url: "script.php",
      type: "POST",
      data: {htmlStr : htmlStr},
      success: function(returnedData) {
         //do something
      }
    });

});
于 2012-06-11T21:45:57.060 回答
1

像下面这样的东西应该可以工作。

阅读更多:http ://api.jquery.com/jQuery.post/

$("#YourButton").click(function(e){
    e.preventDefault();
    var htmlStr = $("#YourDiv").html();
    $.post(
        url: 'YourPHP.php',
        data: '{"htmlStr" : "'+htmlStr+'"}',
        success: function(){
            alert("Success!");
        }
    );  
});
于 2012-06-11T21:46:30.353 回答
0

通过 XmlHttpRequest(“ajax”)通过 POST 或 GET 将数据发送到您的 php 页面。

于 2012-06-11T21:46:01.050 回答