-2

テーブルにアイテムを追加するかなりのスクリプトがあります。JavaScript を介して渡される UPC に基づいて、MySQL データベースから情報を取得する必要があります。

私が試しdocument.write("<?php echo '375'; ?>");たのは、それが機能するかどうかを確認することだけでした。スクリプトがその行に到達すると、ページが更新され、空白の白いページが表示されました。

完全な JavaScript は以下のとおりです。

//setup before functions
var field = document.getElementById("UPC");
var typingTimer;                //timer identifier
var doneTypingInterval = 1000;  //time in ms, 1 seconds

//on keyup, start the countdown
$('#UPC').keyup(function(){
  clearTimeout(typingTimer);
  typingTimer = setTimeout(doneTyping, doneTypingInterval);
});

//on keydown, clear the countdown 
$('#UPC').keydown(function(){
  clearTimeout(typingTimer);
});

function doneTyping () {
//user is "finished typing," do something
if (field.value.length != 0) {
    document.getElementById("noScan").className="hidden";
    document.getElementById("checkout").className="";
    document.getElementById("void").className="";
    var upc=document.getElementById("UPC").value;
    var price = document.write("<?php echo '375'; ?>");
    var weight = parseInt(document.getElementById("weight").value);
    var table=document.getElementById("ScannedItems");
    var total = weight * price;
    var row=table.insertRow(-1);
    var cell1=row.insertCell(0);
    var cell2=row.insertCell(1);
    var cell3=row.insertCell(2);
    var cell4=row.insertCell(3);
    var cell5=row.insertCell(4);
    var cell6=row.insertCell(5);
    cell1.innerHTML=upc;
    cell2.innerHTML="Example Description";
    cell3.innerHTML = "$" + price.toFixed(2);
    cell4.innerHTML = weight + " lbs";
    cell5.innerHTML = "$" + total.toFixed(2);
    cell5.setAttribute('data-total', total); // caches the total into data
    cell6.innerHTML="<a class='add'><span class='glyphicon glyphicon-plus' style='padding-right:15px;'></span></a><a class='delete'><span class='glyphicon glyphicon-minus'></span></a>";
    field.value ='';

    var total = cell5.getAttribute('data-total');
    var salesTax = Math.round(((total / 100) * 8.25)*100)/100;
    var totalAmount = (total*1) + (salesTax * 1);

    document.getElementById('displaysubtotal').innerHTML="$" + (Math.floor(total * 100) / 100).toFixed(2);
    document.getElementById('displaytax').innerHTML="$" + salesTax;
    document.getElementById('displaytotal').innerHTML="$" + totalAmount;
}
   }


    // Duplicate a scanned item
    var $table = $('#ScannedItems');
    $('#ScannedItems').on('click', '.add', function () {
    var $tr = $(this).closest('tr').clone();

$table.append($tr);
    });

    // Remove a line item
    var $table = $('#ScannedItems');
    $('#ScannedItems').on('click', '.delete', function () {
    var $tr = $(this).closest('tr').remove();
    });

このプロジェクトのデータベースから情報を取得する方法を見つけなければなりません。そうしないと失敗します。

4

3 に答える 3

2

生成された HTML をクライアントのブラウザに提供する前に、PHP がサーバー上で実行されます。クライアントの JavaScript によって挿入された PHP コードは実行されません。

コードを PHP から動的に挿入する必要がある場合は、AJAX 呼び出しを使用して別の PHP サーバー側スクリプトを実行し、返されたコンテンツを挿入する方法を調べることができます。

于 2013-10-01T01:06:00.587 に答える
2

Javascript はクライアント側で実行され、PHP はサーバー側で実行されます。したがって、JS が開始する前に PHP の実行が完了します。

したがって、新しいデータを取得するには、サーバーへの呼び出しを開始する必要があります。これを行うには、必要な結果でページを更新するか、AJAX 呼び出しを作成します。

より明確にするために、あなたが示した例を詳しく見てみましょう。ブラウザでソース コードを表示します。として出てきますdocument.write("375");。これは、ページをブラウザー (JS コードが実行される場所) に送信する前に、PHP がサーバー側の JS コードに文字列 '375' をエコーし​​たためです。

PHP は JS コードを生成できますが、JS は (通常の意味で) PHP コードを生成できません。

于 2013-10-01T01:06:33.303 に答える