Как подключить php и jquery - PullRequest
0 голосов
/ 20 декабря 2010

Можно ли использовать php для вычисления чего-либо и использовать jquery для получения вычисленного значение и отобразить его обратно на веб-страницу без необходимости отправки формы. У меня действительно возникают проблемы с использованием клиентской стороны для вычисления чего-то, что использует массивы. Поэтому я думаю позволить php выполнить вычисления.

                    <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>

А вот и файл php, который предполагается использовать для вычислений.

<?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;

    ?>

Можете ли вы дать мне представление о том, как это сделать.

Ответы [ 3 ]

1 голос
/ 20 декабря 2010

Используйте ajax и установите эти значения в обратном вызове.

ajax-функции jQuery включают в себя $ .get, $ .post, $ .load, $ .ajax. Вероятно, вы должны передать свои параметры с помощью POST bc, похоже, вы хотите передать некоторые массивы, а GET не очень подходит для этого. Этот PHP-файл должен отображать то, что вам нужно, и в зависимости от его сложности вы можете захотеть, чтобы JSON использовал JSONencode вместо простой строки.

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

url.php - это файл PHP, который его обрабатывает
вторым аргументом являются поступающие данные
Третий аргумент - это функция обратного вызова, где $ x равно url.php echos

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

1 голос
/ 20 декабря 2010

Сама загрузка часто так проста, как

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

Сложность в вашем случае - сборка различных параметров URL из полей формы.Обычно вы можете передать простой массив / хеш Javascript в качестве параметра данных.Но массивы JS и стандартный обработчик jQuery .load плохо работают с повторяющимися именами полей var[] в стиле PHP.

Лучше всего создать цикл исделать это вручную, я думаю.(Но для этого могут быть плагины, поэтому попробуйте Google и репозиторий плагинов jQuery.)

1 голос
/ 20 декабря 2010

Да.Посмотрите в руководстве jquery примеры того, как делать ajax-запросы и показывать их результаты:

http://api.jquery.com/jQuery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...