2010-12-20 13 views
0

Ist es möglich, php zu verwenden, um etwas zu berechnen und jquery zu verwenden, um den berechneten Wert zu holen und es zurück zur Webseite anzuzeigen, ohne das Formular zu senden. Ich habe wirklich Probleme mit der Client-Seite, um etwas zu berechnen, das Arrays verwendet. Also denke ich daran, PHP die Berechnung machen zu lassen.Wie man php und jquery verbindet

    <input type="hidden" name=ids[] value="<?php $id; ?>"> 
        <input type="hidden" name=qoh[] value="<?php $qtyhand; ?>"> 

        <input type="hidden" name=dprice[] value="<?php $dsprice; ?>"> 
        <input type="hidden" name=sprice[] value="<?php $ssprice; ?>"> 

        <td>$qtyhand</td>"; 
        <td><input type="text" name=qbuys[] value="<?php echo $ssprice; ?>"></td> 
        <td><?php $ssprice; ?></td>"; 
        <td><input type="text" name=disc[] value=""></td> 


        <td><input type="text" name=subtot[] value=""></td> 

Und hier ist die PHP-Datei, die für die Berechnung verwendet werden soll.

<?php 
    $ctbill=0; 
    foreach ($_GET['ids'] as $k => $v) { 
     $id = (int)$v; 
     $qtyhnd = (int)$_GET['qoh'][$k]; 
     $qtytbuy = (int)$_GET['qbuys'][$k]; 
     $left = $qtyhnd - $qtytbuy; 



     $sellprice=(double)$_GET['sprice'][$k]; 
     $dealerprice=(double)$_GET['dprice'][$k]; 

     $finalvalue=.01; 
     $dis=(double)$_GET['disc'][$k]; 




     $stotal=(double)$qtytbuy * $sellprice; 
     $cdizval=(double)$stotal * $dis * $finalvalue; 
     $cdstotal=$stotal-$cdizval; 

     $ctbill=(double)$ctbill + $cdstotal; 






     $dizval=$dis * $finalvalue; 
     $preprof=(($sellprice * $qtytbuy)-($dealerprice*$qtytbuy)) * $dizval; 
     $profit=(($sellprice * $qtytbuy)-($dealerprice*$qtytbuy)) - $preprof; 

    ?> 

Können Sie mir eine Idee geben, wie es geht?

+0

Ajax-Tag hinzugefügt. –

Antwort

1

Der Laden selbst ist oft so einfach wie

$("#output").load("compute.php?ids[]=1111&ids[]=2222"); 

Die Komplexität in Ihrem Fall besteht darin, die verschiedenen URL-Parameter aus den Formularfeldern zusammenzustellen. Normalerweise können Sie ein einfaches Javascript Array/Hash als Datenparameter übergeben. Aber JS-Arrays und der Standard-Handler jQuery .load funktionieren nicht gut mit repetetiven PHP-style var[] Feldnamen, die Sie haben.

Ihre beste Wette ist es, eine Schleife zu bauen und das manuell zu tun, denke ich. (Aber es könnte Plugins dafür geben, also versuchen Sie Google und jQuery Plugin-Repository.)

1

Verwenden Ajax und setzen diese Werte in den Rückruf.

jQuerys Ajax-Funktionen enthalten $ .get, $ .post, $ .load, $ .ajax. Sie sollten Ihre Parameter wahrscheinlich mit POST bc übergeben. Es scheint, dass Sie einige Arrays weitergeben wollen und GET ist dafür nicht gut geeignet. Diese PHP-Datei sollte das Zeug wiedergeben, das Sie brauchen, und abhängig von ihrer Komplexität möchten Sie vielleicht, dass es JSON-benutzter JSON-Code ist, anstatt nur eine einfache Zeichenfolge.

$.post('/url.php', {data1: 'literal', data2: variable, ....}, function($x){--display==}); 

url.php ist die PHP-Datei, die es
zweites Argument behandelt wird encoming Daten
drittes Argument ist eine Callback-Funktion, mit $ x sind unabhängig von url.php echos

http://api.jquery.com/category/ajax/
http://www.visualjquery.com

Verwandte Themen