4

更新: うわー、これまでで最速の応答であり、互いに数分で非常に多くの応答がありました。すばらしい。これが私がやろうとしていることです。 http://edvizenor.com/invoice33/

この請求書をその場で編集したいのですが、一番上の青いボックスをクリックすると、この内容をプレビューしたり、次のページでこの内容を確認したりしたいと思います。

この青いボックスは後で下部のボタンに変更されますが、テストのために使用しています。

ご覧のとおり、ajax スクリプトを呼び出しますが、div の編集済みコンテンツを php var に送信して、プレビュー ページにエコーできるようにする必要があります。それをphp varに入れることができれば、次のページでそれを使用します。それは理にかなっていますか?迅速な対応に感謝します。

古い投稿

jQuery を使用してコンテンツを取得し、divそれらを PHP 変数に配置して、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形式で交換することです。

たとえば、基本的なテキストエディタがあるとします。

Jquery:

$($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です(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)返します)、JavaScriptで通常のJSONとして返し、処理できるJSON文字列に配列をエンコードできます。

それがお役に立てば幸いです。

于 2012-06-11T21:57:21.333 に答える
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 に答える
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 (サーバー) に送信します。ここに jquery を使用した ajax の優れたチュートリアルがあります。

于 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 に答える