3

Jquery 変数を php に渡す際の問題。

変数IDを渡すとB.php 、このエラーが発生します

"Notice: Undefined index: id1 in C:\xampp  \htdocs\PhpProject1\OtherUsableItems\B.php on line 2 

この問題を解決する方法???? これA.php

<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
  var id = 23; 
$("#submit").click(function(){
 $.post("B.php",
 {
     id1: id,

  } );      
   });
  });
 </script>
 </head>
 <body>
 <form action="B.php" method="post" >
 <input type="submit" id="submit" name="submit"/> 
 </form>
 </body>
 </html>

これB.php

  <?php
   $a =$_POST['id1'];
   echo $a ;
   ?>

id 変数を渡したいB.php

4

9 に答える 9

6

これを試してください:

<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
  var id = 23; 
$("#submit").click(function(){
 $.ajax(
    {
    url: "B.php",
    type: "POST",

    data: { id1: id},
    success: function (result) {
            alert('success');

    }
});     
   });
  });
 </script>
 </head>
 <body>
 <form  >
 <input type="button" id="submit" name="submit"/> 
 </form>
 </body>
 </html>

次に、B.php

<?php
   $a =isset($_POST['id1'])?$_POST['id1']:'not yet';
   echo $a ;
   ?>
于 2013-04-05T11:48:11.137 に答える
1

問題は、フォームが送信され、 $.postajax sumit 用であることです。そのためには、フォームの送信を防ぐ必要があります。

<script>
     $(document).ready(function(){
        var id = 23; 
        $("#submit").click(function(){
           $.post("B.php",
           {
              id1: id,

           });  
           event.preventDefault() ;
        });    
    });
</script>

event.preventDefault();ボタンクリック機能を追加する

于 2013-04-05T11:48:01.510 に答える
1

入力タイプを送信ではなくボタンに変更してみてください <input type="button" id="submit" name="submit"/>

于 2013-04-05T11:44:21.430 に答える
0

これを試して:

<script>
$(document).ready(function(){
   var id = 23; 
   $("#submit").click(function(e){
     e.preventDefault();
     $.post("B.php", {id1: id}, function(data){ //<---get the data from B.php
        console.log(data);   //<--------show it here
        alert(data);
     });      
   });
  });
 </script>

ajax機能を使用しているため、フォーム送信機能を停止する必要があります。ここに末尾のカンマがありますが、{id1 : id,}これは IE ブラウザーの問題ですが、最新の他のブラウザーは問題なく動作します。

ノート:

このエラーを投稿しました:

"Notice: Undefined index: id1 in C:\xampp \htdocs......

ファイルシステムでページを実行しないでください$.post()。この方法では機能しません。

代わりに使用してみてくださいhttp://localhost/yourapplication/page.php

于 2013-04-05T11:44:40.150 に答える
0

このコードを試して、

 <html>
 <head>
 <script src="jquery.js"></script>
 <script>
 $(document).ready(function(){
 var id = 23; 
 $("#submit").click(function(){
 $('#id1').val(id);
 });
 });
</script>
 </head>
 <body>
 <form action="B.php" method="post" >
 <input type="submit" id="submit" name="submit"/> 
 <input type="hidden" name="id1" id="id1" value=""/>
</form>
</body>
</html>

ここで 'id' の値を B.php に渡すことができ、$_POST['id1'] としてアクセスされます

于 2013-04-05T12:08:08.750 に答える
0
$(document).ready(function(){
  var id = 23; 
  $("#submit").click(function(e){
     $.post("B.php", {id1: id} );     
     e.preventDefault();
   });
 });

上記のコードを試してください。最初: JS では、次のようなことは許可されていません: {id1: id,}(末尾のコンマを参照)。それがPHPの特徴です。実際には、構文エラーであるため、JS コードはまったく実行されるべきではありません (ブラウザーのコンソールで見つかるとします)。

別の問題: フォームのデフォルトの送信を防止する必要があります。e.preventDefault()そのために必要です。それがないと、ajax 投稿が開始され、通常のフォーム送信よりも発生します。フォームには id1 という名前の要素がありません。2 番目のリクエストでそのエラー メッセージが生成されたとします。

編集: これは通常の送信で値を投稿するためのものであるため、ブラウザーは B.php にリダイレクトされます

$(document).ready(function(){
      var id = 23; 
      $("#submit").click(function(){
              $(this).closest("form")
                     .append($("<input>", {"type":"hidden", "name":"id1", "value":id}));
       });
     });
于 2013-04-05T11:44:00.237 に答える
0

非表示フィールドを使用して、送信する値を設定します。submit を使用しているため、フォーム全体が送信されます。非表示フィールドも送信され、非表示フィールドの名前を使用して直接アクセスできます。

于 2013-04-05T11:49:00.677 に答える
0

POST-Array のインデックスが存在しないため、php によって E_NOTICE がスローされます。通知の error_reporting を切り替えることができます。http: //www.php.net/manual/de/errorfunc.configuration.php#ini.error-reporting を参照するか、インデックスが存在するかどうかを確認してください。

if( isset($_POST['id1']) )  {
// do something
}
于 2013-04-05T11:50:50.290 に答える
0

または、この方法で submit() を使用できます

$(function(){
    var id = 23;
    $("#myform").submit(function() {
        $.post("B.php", { id1: id }).done(function(data) {
            alert( data );
        });
        return false; //true(post form data)
    });
});

そしてフォーム

<form id="myform" method="post">
<input type="submit" id="submit" name="submit" />
</form>

編集: B.php isset check または error_reporting(0); については、そうです。

if(isset($_POST['id1'])){
    print_r( $_POST );
}
于 2013-04-05T12:28:37.167 に答える