0

当用户到达页面底部的弹跳时,我正在尝试将运行经典 asp 的 Web 服务器中的数据库记录添加到我现有的 uiwebview 页面。我使用 HTML DOM javascript 使用 HTML DOM javascript 在每次反弹时将数据附加到页面上:

IOS:

NSString *JavaCodeFromFile = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.xxx.com/JavaTestImage.asp"] encoding:NSUTF8StringEncoding error:nil];
NSString *ReturnedValue = [Web_View stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"%@", JavaCodeFromFile]];

JavaTestImage.asp 内容:

var para=document.createElement("p"); 
var NewImg=document.createElement("img"); 
NewImg.setAttribute('src', 'http://www.xxx.com/Images/Under_Construction.jpg');
NewImg.setAttribute('width', '100');
NewImg.setAttribute('height', '120');
document.body.appendChild(NewImg); 

var Textnode=document.createTextNode("From JavaTestImage.asp - Added Text.");  
para.appendChild(Textnode); 
document.body.appendChild(para);

问题: 此代码工作正常,但因为它的 javascript 我不能调用数据库来动态加载更多记录。我可以使用另一种方法将更多数据库数据添加到已填充的 UIWebView 吗?

谢谢,理查德

4

1 回答 1

0

好吧,要在 PHP 中做到这一点,您必须做出选择。

1 - 将图像文件名保存在 SQLDB 或任何其他 DB 中,并使用 DB 查询来获取记录。

2 - 只需将所有图像文件放在某个文件夹中并获取该文件夹中的文件。

我会选择最简单的方法(第二种),下面是代码:

下面的代码应保存为 getimages.php

假设您的图像保存在名为“images”的文件夹中,并且与 getimages.php 位于同一文件夹中。

该代码以 6 条记录响应,起始记录号为:(6 * ($pagenum - 1))

要获取前 6 条记录,只需将您的请求 URL 字符串 ="www.xxx.com/getimages.php?page=1"

<?php

     $pagenum = 0;
     if ( array_key_exists( 'page', $_GET ) ) {
          $pagenum = $_GET[ 'page' ] - 1;
     }

     $i = 0;
     $tmp1 = (($pagenum + 1) * 6);
     $tmp2 = $pagenum * 6;
     $entered = 0;
     foreach (array_reverse(glob("images/*.jpg")) as $filename) {
          // replace ".jpg" with ".*" if you have more than one extension
          if (($i > ($tmp2 - 1)) && ($i < $tmp1)) {

               echo "$filename" . "\n";
               $entered = 1;
      }
      $i = $i +1;
     }
?>

这应该返回一个 6 行的字符串,每行都有一个图像 URL。希望能帮助到你。

于 2013-07-07T20:44:35.347 回答