JBTALKS.CC

标题: 如何从javascript pass value去php或txt file [打印本页]

作者: Exm    时间: 2015-8-24 12:06 PM
标题: 如何从javascript pass value去php或txt file
  1. <script>
  2.          var defaultValue = 5;
  3.          var plus = 1;
  4.          var max = 100;
  5.          var total = defaultValue;
  6.          
  7.      window.setInterval(

  8.      function () {

  9.        
  10.          if (total > max){
  11.          
  12.          total = defaultValue;

  13.          }
  14.        
  15.          document.getElementById("demo1").innerHTML = total;


  16.                         total = total + plus;

  17.      }, 1000);
  18.          
  19. </script>
复制代码
  1. <p id="demo1"></p>
复制代码
想问各位大大
我想把total放在一个txt file或者mysql里,需要的时候再read by txt或server,这样即使我refresh browser也可以不会重新开始计算,但是我要如何把total从javascript pass value去php里呢?(每一秒write and read)

我找了好几天的资料了,不是用form的方式就是function不到,唉
作者: jasminetay    时间: 2015-8-24 10:15 PM
用ajax 来post data去php
作者: 兴杰    时间: 2015-8-24 10:19 PM
找了几天都找不到才是你要先解决的问题吧。
你先学习一些简单的PHP,一步一步来。


作者: xiaoyo0    时间: 2015-8-24 10:30 PM
兴杰 发表于 2015-8-24 10:19 PM
找了几天都找不到才是你要先解决的问题吧。
你先学习一些简单的PHP,一步一步来。

给你一个like
作者: 聖賢    时间: 2015-8-25 12:20 AM
1.用form post/get然后set session
2.用ajax post/get然后 set session
3.用API 直接从js set session
sql就太大费周章了
作者: Exm    时间: 2015-8-25 08:39 AM
兴杰 发表于 2015-8-24 10:19 PM
找了几天都找不到才是你要先解决的问题吧。
你先学习一些简单的PHP,一步一步来。

我没什么时间可以一步一步来了,基础的php我大概还是知道的。
只是我了解的php都是以form method来执行,我现在要执行的并不会进过form method来post/get而是从javascript直接post/get,这个我就想不清楚了..

我对AJAX不熟,可以给些example...
作者: 兴杰    时间: 2015-8-25 09:14 AM
Exm 发表于 2015-8-25 08:39 AM
我没什么时间可以一步一步来了,基础的php我大概还是知道的。
只是我了解的php都是以form method来执行, ...

ajax 的话可以使用简单的 jQuery 来实现。
http://api.jquery.com/jquery.ajax
如果想了解javascript的话,你可以看我以前写的 http://www.cnblogs.com/keatkeat/p/3957130.html
后台是 .net 你自己改成PHP吧
作者: Exm    时间: 2015-8-25 11:03 AM
兴杰 发表于 2015-8-25 09:14 AM
ajax 的话可以使用简单的 jQuery 来实现。
http://api.jquery.com/jquery.ajax
如果想了解javascript的 ...

刚刚看了你自己的网站,看得出你是Senior Web Designer,而且自己还开了个company...
我的偶像 ,你是我要成为的人
我只是小小的Fresher Web Designer(可能连Junior都不到)
只知道html,css,懂一些入门的javascript 和 php.
所以从来没接触Axaj的我,看了你blog的Axaj只是一部分一部分的,所以我有点看不懂...
  1. <%@ WebHandler Language="C#" Class="ajaxhand" %>

  2. using System;
  3. using System.Web;
  4. using MySql.Data.MySqlClient;
  5. using System.Data;
  6. using Newtonsoft.Json;
  7. using Newtonsoft.Json.Linq;
  8. using System.Collections.Generic;
  9. using System.Collections;
  10. using System.Web.SessionState;
  11. using System.Linq;
  12. using System.Reflection;
  13. using System.IO;
  14. using System.Text;
  15. using stooges_funcV3;
  16. using System.Collections.Specialized;

  17. public class ajaxhand : IHttpHandler
  18. {
  19.     public void ProcessRequest (HttpContext context)
  20.     {
  21.         //遍历header
  22.         NameValueCollection head = context.Request.Headers;
  23.         String[] headersKey = head.AllKeys;
  24.         foreach (string key in headersKey)
  25.         {
  26.             String[] values = head.GetValues(key);
  27.             string value = values[0]; //通常只有一个
  28.         }         
  29.         context.Response.ContentType = "text/plain";
  30.         context.Response.Write("Hello World");      
  31.     }

  32.     public bool IsReusable {
  33.         get {
  34.             return false;
  35.         }
  36.     }
复制代码
你这个是call c# language 的program run在ajax里吗?
我会java read/write file,那么我可以call我java的language放进我html里吗?
作者: 兴杰    时间: 2015-8-25 11:53 AM
你是PHP的吗?
PHP还是请PHP大神来教你吧。
这个参考一下
http://www.w3schools.com/php/php_ajax_php.asp
我无能为力了^^
作者: 三岁学抽烟    时间: 2015-8-26 05:46 PM
不是很明白你的问题,但根据你的一些关键字我大概觉得你需要ajax和setinterval来解决你的问题。如有错请更正我.
基本ajax pass data 去php
简单的 getElementbyId那些不提了。

  1. $.ajax({
  2.                     type: "POST",
  3.                     url: 'pass-to-back-end-php-file.php',
  4.                     data: 'login=' + login + '&password=' + password,  // first 'login' which is similar like $_Post['login'] and after + is var login (javascript).
  5.                     success: function (data) {
  6.                     //check got data return or not.
  7.                     alert('successful'); //option 1
  8.                     console.log(data); //option 2
  9.                     }

  10.                 });
复制代码
后台php file就是跟普通的get,post一样.
过后interval就是差不多是这样.
  1.                
  2. setInterval(function () {
  3.                     // Do something every 5 seconds
  4.                     $("your-div-or-others").load("your-data-result.php");
  5.                 }, 5000); // 5000 = 5sec.
复制代码

作者: Exm    时间: 2015-8-27 08:49 AM
本帖最后由 Exm 于 2015-8-27 08:52 AM 编辑
三岁学抽烟 发表于 2015-8-26 05:46 PM
不是很明白你的问题,但根据你的一些关键字我大概觉得你需要ajax和setinterval来解决你的问题。如有错请更正 ...


其实我是想做类似计算在线时间,每秒都在做function,但是到了累积到一定的时限会重新计算过...
但是我不要refresh browser了就重新开始计算过...
所以我想把totalOnlinePerSecond放在一个database或着txt里...

**PS: 我没接触过Ajax
  1. <script>


  2.          var defaultValue = 5; //当重新开始计算的时候会在哪里开始
  3.          var plus = 1;
  4.          var max = 100;
  5.          var total = defaultValue;
  6.          
  7.      window.setInterval(

  8.      function () {

  9.         
  10.          if (total > max){ //if max total will re-looping
  11.          
  12.          total = defaultValue;

  13.          }
  14.         
  15.          document.getElementById("demo1").innerHTML = total; // display in html


  16.                         total = total + plus;

  17.      }, 1000);//run per second
  18.          
  19. </script>
复制代码

作者: 三岁学抽烟    时间: 2015-8-27 10:13 AM
Exm 发表于 2015-8-27 08:49 AM
其实我是想做类似计算在线时间,每秒都在做function,但是到了累积到一定的时限会重新计算过...
但是我 ...

没接触过不能当做借口哦~要去尝试的~

依你的情况~
先玩下ajax,多google或去下stack overflow能加强你的skills.

我觉得你能那么做~

你先分开2个part做,
第一个就是先玩setInterval,你可能放个10sec然后alert/console你一次,确保interval是work的~

第二个就是javascript ajax set去php file.你能用基本的onclick然后来测试是否ajax运行成功.
这是我之前的一个大概的script,你拿来modify玩玩看~
example:

  1.     $("input[name='CheckBtn']").on("click", function (event) {
  2.         event.preventDefault();
  3.         var login = document.getElementById("login").value; //get hp number  
  4.         $.ajax({
  5.             url: "validation.php", //php trace database check.
  6.             type: 'POST',
  7.             data: 'login=' + login,
  8.             success: function (html) {
  9.                 if (html == 'true') { //if data send back 'true'
  10.                     // do something if login id is exist
  11.                     alert('Login ID Available');
  12.                     //message empty and add success message
  13.                 }
  14.                 else {
  15.                     // do something if login id doesn't exist
  16.                     alert('Login ID Not available, Please Enter another ID');
  17.                 }
  18.             }
  19.         });
  20.     });
复制代码
如果两个都ok了后,你就拿掉onclick再把ajax放进去setinterval里面,应该能解决你的问题了~ 没说完全部的logic给你是让你多尝试,和想想logic flow. 希望能帮到你~
作者: Exm    时间: 2015-9-1 12:08 PM
三岁学抽烟 发表于 2015-8-27 10:13 AM
没接触过不能当做借口哦~要去尝试的~

依你的情况~
  1. <script>


  2.          var defaultValue = 5; //当重新开始计算的时候会在哪里开始
  3.          var plus = 1;
  4.          var max = 100;
  5.          var total = defaultValue;
  6.          
  7.      window.setInterval(

  8.      function () {

  9.         
  10.          if (total > max){ //if max total will re-looping
  11.          
  12.          total = defaultValue;

  13.          }
  14.         document.getElementById("demo1").innerHTML = total; // display in html
  15.                  var xmlhttp=new XMLHttpRequest();
  16.                 xmlhttp.open("GET","writeInPhp.php?total="+total,false);
  17.                 xmlhttp.send(null);
  18.                       total = total + plus;

  19.          


  20.      }, 1000);//run per second
  21.          
  22. </script>
复制代码
php
  1. <?php
  2. $total=$_GET["total"];

  3. mysql_connect("localhost","root","");
  4. mysql_select_db("demo");
  5. mysql_query("UPDATE table1 SET total='$total' WHERE 1");
  6. ?>
复制代码
是这样子吗?
谢谢你...
作者: 三岁学抽烟    时间: 2015-9-1 12:14 PM
Exm 发表于 2015-9-1 12:08 PM
php是这样子吗?
谢谢你...

大概是那样~你test run了吗?result如何?
别客气~我也是再学习中
作者: Exm    时间: 2015-9-1 02:17 PM
三岁学抽烟 发表于 2015-9-1 12:14 PM
大概是那样~你test run了吗?result如何?
别客气~我也是再学习中


test run了,可以每一秒save value去Database里...
想再问你一下,那么,如果我要从database get value去javascript,有什么方法可以实现呢?(同样是每秒get value)
作者: 三岁学抽烟    时间: 2015-9-1 04:21 PM
Exm 发表于 2015-9-1 02:17 PM
test run了,可以每一秒save value去Database里...
想再问你一下,那么,如果我要从database get valu ...

这个就要用到ajax json了,东西跟ajax大同小异~
因为php不能直接Pass value 去javascript.(据我所知)
自己摸索Steps)
1.php store 你的value去array然后再json echo出来.
2.ajax json call你的array出来.

你可以参考这个贴。
加油.
作者: 宅男-兜着走    时间: 2015-9-29 12:40 AM
试问,

你把 total save起来是要达到什么目的?
是要永久的? 被保护的? 还是允许被更改的 ?



如果简单的话可以直接存在 browser, 不必麻烦,
1. cookie (每个 browser 支持)
2. webdb (IE 不支持)
3. pass 去 server text or save db.  (PHP 可以用 fwrite 来写text 简单实现)


不过这个算式基本上不会影响到太多问题, 从算就从算吧。
作者: pickndrive    时间: 2015-10-4 10:19 PM
提示: 作者被禁止或删除 内容自动屏蔽
作者: wendylim1991    时间: 2015-11-18 03:02 PM
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5