0

私はphpの初心者で、まだjavascript関数を学んでいます。

問題があり、javascript変数をphpクエリに含めます。

種類の異なるパーツコードの数に応じてトランザクションコードを作成したい。次に、カウントで値を取得する必要があります。

<script language="javascript" type="text/javascript">
    function getCode(){
    var v =document.forms["form1"]["part_code"].value;
    <?php 
    $query = mysql_query("SELECT COUNT(*)+1 as count FROM TB_TRANSACTION where part_code = "<script>v;</script>"");
    $i=-1;
    while ($code_part = mysql_fetch_array($query))
    {
       $i++;
       ?>
       var getPartCode = <? echo $code_part['count'];?>;
       var x = document.forms["form1"]["part_code"].value;
       var y = document.forms["form1"]["location_code"].value;
       var z = document.forms["form1"]["date"].value;
       var a = (getPartCode + '/'+x +'/'+ y +'/'+ z);
       document.forms["form1"]["invent_code"].value = a;
       <?
    }
    ?>
</script>

そんな結果に1/CPU/JKT/2013

button onClick="getCode()"サブミットなしでその関数を呼び出します。

誰でも私を助けることができます。

4

2 に答える 2

0

最良の方法はAjax

それ以外の場合は Cookie を使用します

例:

<script type="text/javascript">
    document.cookie = "cookieName=cookieValue";
</script>

<?php 
   $phpVar =  $_COOKIE['cookieName'];
   echo $phpVar;
?>

あなたのコード

<script language="javascript" type="text/javascript">
    function getCode(){
    var v =document.forms["form1"]["part_code"].value;
     document.cookie = "cookieName="+v;
    <?php 
   $phpVar =  $_COOKIE['cookieName'];
    $query = mysql_query("SELECT COUNT(*)+1 as count FROM TB_TRANSACTION where part_code = '$phpVar'");
    $i=-1;
    while ($code_part = mysql_fetch_array($query))
    {
    $i++;
    ?>
    var getPartCode = <? echo $code_part['count'];?>;
    var x = document.forms["form1"]["part_code"].value;
    var y = document.forms["form1"]["location_code"].value;
    var z = document.forms["form1"]["date"].value;
    var a = (getPartCode + '/'+x +'/'+ y +'/'+ z);
    document.forms["form1"]["invent_code"].value = a;
    <?
    }
    ?>
</script>

更新しました

これをチェックして

function getCode(){
var v = 12;
document.cookie = "cookieName="+v;
var getPartCode = <?php echo $_COOKIE['cookieName']; ?>
alert(getPartCode);
}
于 2013-08-21T10:01:37.273 に答える
0

あなたが試した方法ではできません。それを行うより良い方法が 2 つあります。

  1. を使用しAjaxます。

  2. クッキーを使用する

    ここでの最善の方法は、Ajax を使用することです。ここでは、iam を使用しています。javascriptそしてajax、応答を作成するための新しいファイルを作成しています (newfile.php など)。これを試してください。

    function getCode(){
            var v =document.forms["form1"]["part_code"].value;
            var x = document.forms["form1"]["part_code"].value;
            var y = document.forms["form1"]["location_code"].value;
            var z = document.forms["form1"]["date"].value;
            var xmlhttp;
    if (window.XMLHttpRequest)
      {  // code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {   // code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        var getPartCode=xmlhttp.responseText;  //Getting the response from php file
        var a = (getPartCode + '/'+x +'/'+ y +'/'+ z); 
        document.forms["form1"]["invent_code"].value = a;
        }
      }
    xmlhttp.open("GET","newFile.php?q="+v,true);  //Sending request to newfile.php 
    xmlhttp.send();
            }
    </script>
    

newfile.php

<?php
$value = $_GET["q"];  //getting the value sent through tthe ajax request
$query = mysql_query("SELECT COUNT(*)+1 as count FROM TB_TRANSACTION where part_code = '$value'");
   $i=-1;
    while ($code_part = mysql_fetch_array($query))
    {
    $i++;
    echo $code_part['count'];
   }
?>
于 2013-08-21T10:34:56.887 に答える