ホームページ  >  記事  >  バックエンド開発  >  データを更新するためにジャンプしない PHP 選択時間

データを更新するためにジャンプしない PHP 選択時間

WBOY
WBOYオリジナル
2016-06-23 14:27:071229ブラウズ

親愛なるマスターの皆様、私の問題を簡単に説明させてください

現在のページに 2 つの日付ピッカーを作成したいと考えています。日付を選択した後、ページはジャンプすることなくテーブル内のデータを更新できます。

ajax でできることはわかっています。ただ、php webに触れるのが初めてでよく分からないので、なるべく詳しく回答するようにお願いします。

まずは私のページに行きましょう。



これは日付ピッカーを追加しない場合のレンダリングです。

これは私のコードに書かれていることです。 (コード内の現在時刻がハードコーディングされているため、日付を選択して値を SQL ステートメントに渡す必要があります) その方法がわかりません。
$top $end はそれぞれセレクターによって選択された時間です。 $data は私のテーブルです

$djvhj=mysql_query("select sum(单机率) FROM $data where 日期 between '$top' and '$end'",$connone);


アドバイスをお願いします!


ディスカッションへの返信 (解決策)

日付ピッカーを作成しましたか? ajax である必要はありません。フォームとして送信できます。

1. 日付の選択については、Baidu で検索でき、プラグインがたくさんあります。
2. Ajax 実装。アイデアについて説明します。検索ボタンに ID を追加し、このイベントがトリガーされると、その ID にクリック イベントを追加します。返されたデータを Ajax リクエストの接続で直接エコーするか、別のページで処理してからロードし直すかを選択できます。

日付ピッカーは作成しましたか? ajax である必要はなく、フォームとして送信できます。

いいえ。既製品が欲しいです。問題は、このフォームをどこに実装する必要があるかということです。具体的な解決策を教えてください

c236d2332e6d7f4616ef1692dfc743402cacc6d41bbb37262a98f745aa00fbf0
c858d69dd81008e347cd5f5447f8e393開始日e6e38b3c62e8df885fe2e3986461aa63
26863e9157a9253a1751a9120b0e26c1 font color=red>終了日を選択e6e38b3c62e8df885fe2e3986461aa63 58dbff2155ea233bf9708937914ab159

$starts=
$ends

日付プラグイン my97 を使用しました。いくつかの情報が見つかりました。 2 つの日付、つまり onClick が選択されている場合、onClick="WdatePicker({el:$dp.$('s')})"> が値を渡すために使用されます。しかし、私は尋ねたいです。この値を 2 つの変数にどのように割り当てればよいでしょうか。割り当てが成功した場合。ページのデータはすぐに更新されますか?

それでは、日付ピッカーは作成しましたか? ajax である必要はなく、フォームとして送信できます。


いいえ。既製品が欲しいです。問題は、このフォームをどこに実装する必要があるかということです。具体的な解決策を教えていただけますか?


時間を直接選択して ajax リクエストを送信しますが、クエリ ボタンは必要ありませんか?

では、日付セレクターは作成されましたか? ajaxである必要はなく、フォームにするだけでも送信可能です。

いいえ。既製品が欲しいです。問題は、このフォームをどこに実装する必要があるかということです。いくつかの具体的な解決策を教えてください


時間を直接選択して ajax リクエストを送信し、クエリ ボタンは必要ありませんか?

はい

function choose_time(){    WdatePicker({        el:'send_datetime',        minDate:'<?php echo date("Y-m-d H:i:s");?>',        maxDate:'<?php echo date("Y-m-d H:i:s",strtotime("+3 years"));?>',        dateFmt:'yyyy-MM-dd HH:mm:ss',        readOnly:false,        onpicked:function(dp){            $("#show_time").html("您的邮件将于<span>"+dp.cal.getDateStr()+"</span>发送到对方邮箱");			$("#send_time").val(dp.cal.getDateStr());        }    });}

上記の記述を参照してください。主に、 onpicked パラメーターでは、まず入力に 2 つのデフォルト値を指定します。その後、マウスが入力をトリガーすると、onpicked は目的の結果を達成できます。

データの取得には Ajax を使用する方が良いでしょう。このページを書くのは面倒です。

データの取得には Ajax を使用する方が良いでしょう。このページを書くのは面倒です。

フォームを使用して送信するにはどうすればよいですか?例を挙げて教えてください。

Ajax にはフォームは必要ありません。

フォーム ページで、時間を選択した後、非同期リクエストを送信し、パラメーターを受け取った後、パラメーター (選択された時間) を処理ページに渡します。処理ページはデータベース操作を実行し、データを生成します。リクエストはデータを受信した後、テーブルに新しいデータを挿入します。


これは私の HTML ページと PHP ページです

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"></script><title>店面营业查询结果</title><style type="text/css"></style></head><body><span class="style2"><form action="right1bak.php" method="post"><font color=red>选择开始日期</font><input name="top" value="" class="Wdate" type="text" onClick="WdatePicker()"><font color=red>选择结束日期</font><input name="end" value="" class="Wdate" type="text" onClick="WdatePicker()"><input type="submit" name="submit" value="确定时间"></form></span></body></html>


<?phpheader("Content-type: text/html; charset=utf-8");$top=$_GET["top"];$end=$_GET["end"];echo "\r<a href='javascript:onclick=history.go(-1)'>返回上页</a> ";$connone = mysql_connect("192.168.3.221","root","myoa888");mysql_select_db("klserver",$connone);$yhspsr=mysql_query("SELECT sum(商品收入) FROM yybb_yh WHERE 日期 between '$top' and '$end'",$connone); //查询永浩商品收入语句

ajax  无需表单:
在表格页上,选择时间后发送异步请求,传参(选择的时间)给处理页面,处理页面接收到参数后进行数据库操作并生成数据 将数据返回给请求,请求接到数据后把新数据插入到表格中。

4b2bf0141f7aba04b354afb53080421c
23bd07998d5f2fcaf083f17710a33013
以上两个value先给个默认时间
将WdatePicker()函数重新改写如下:

function choose_time(){    WdatePicker({        dateFmt:'yyyy-MM-dd HH:mm:ss',        readOnly:false,//这个是控制职能通过插件选择时间,不能手动填写,不要可以去掉        onpicked:function(dp){            //dp.cal.getDateStr()这个值就是你锁选择的时间            var top = dp.cal.getDateStr();            var end = $("#end").val();            $.post('处理请求链接',{'top':top,'end':end},function(msg){//将所取到的时间发送到php处理页面                //这里处理返回数据            })        }    });}

11fe6050342c07bba19b22af64cc6647将里面的onClick="WdatePicker()"换成onClick=" choose_time()"。

不知道这样说你是否明白。

 


ajax  无需表单:
在表格页上,选择时间后发送异步请求,传参(选择的时间)给处理页面,处理页面接收到参数后进行数据库操作并生成数据 将数据返回给请求,请求接到数据后把新数据插入到表格中。

4b2bf0141f7aba04b354afb53080421c
23bd07998d5f2fcaf083f17710a33013
以上两个value先给个默认时间
将WdatePicker()函数重新改写如下:

function choose_time(){    WdatePicker({        dateFmt:'yyyy-MM-dd HH:mm:ss',        readOnly:false,//这个是控制职能通过插件选择时间,不能手动填写,不要可以去掉        onpicked:function(dp){            //dp.cal.getDateStr()这个值就是你锁选择的时间            var top = dp.cal.getDateStr();            var end = $("#end").val();            $.post('处理请求链接',{'top':top,'end':end},function(msg){//将所取到的时间发送到php处理页面                //这里处理返回数据            })        }    });}

11fe6050342c07bba19b22af64cc6647将里面的onClick="WdatePicker()"换成onClick=" choose_time()"。

不知道这样说你是否明白。


你好 我明白你的意思了。 现在通过你的代码 我能正确的在 php页面打印出取到的值。。

我也用mysql语句测试过 我的sql语句没有问题 , 能查到值。 

SELECT sum(会员收入) FROM yybb_xdf WHERE 日期 between '2013-07-03' and '2013-07-04' 


无非我现在的语句改成了这样。
SELECT sum(会员收入) FROM yybb_xdf WHERE 日期 between '$top' and '$end'


但是更新不到数据。。。求解答

可能找到问题所在了。  

我的代码现在是这样

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"></script><script language="javascript" type="text/javascript">function choose_time(){    WdatePicker({        dateFmt:'yyyy-MM-dd',        readOnly:false,//这个是控制职能通过插件选择时间,不能手动填写,不要可以去掉        onpicked:function(dp){            //dp.cal.getDateStr()这个值就是你锁选择的时间            var top = dp.cal.getDateStr();            var end = $("#end").val();            $.post('处理请求链接',{'top':top,'end':end},function(msg){//将所取到的时间发送到php处理页面                //这里处理返回数据            })        }    });}</script><title>店面营业查询结果</title></head><body><span class="style2"><form action="right1bak.php"><font color=red>选择开始日期</font><input name="top" id="top" value="" class="Wdate" type="text" onClick="choose_time()"><font color=red>选择结束日期</font><input name="end" id="end" value="" class="Wdate" type="text" onClick="choose_time()"><input type="submit" name="submit" value="确定时间"></form></span></body></html>

SELECT sum(会员收入) FROM yybb_xdf WHERE 日期 between '$top' and '$end'
这个sql语句是错误的。。。
单引号里面变量不能这样放,你先把sql语句写对吧。

先确定是用ajax提交还是用form提交吧,看你的代码中两个都有。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。