我想暂停一个while循环直到用户提交表单,那么我该怎么做呢?

时间:2013-04-03 19:13:44

标签: php wordpress cj

我有来自CJ的25个广告服务器,现在我想在每个广告服务器的不同类别的wordpress中创建2个帖子。所以我创建了以下脚本,但它没有暂停用户输入,所以我该怎么做? 如果它不可能,那么有没有其他方法来做到这一点?在脚本中,$ ad是包含广告客户ID值的数组,$ adcat也是一个包含广告客户类别的数组

function cjlinks($n)
{
    global $ad, $adcat;


        $URI = 'https://product-search.api.cj.com/v2/product-search?website-id=12345678'.
            '&advertiser-ids='.$ad[$n].
            '&records-per-page=2';

    $context = stream_context_create(
    array(
    'http' => array(
        'method' => 'GET',
        'header' => 'Authorization: ' .
            'my api id'

        )
    ));

    $res = new SimpleXMLElement(file_get_contents($URI, false, $context));
    return $res;
}   
$a = 0;
while ($a < 25)
{

    echo 'advertiser id is:  '.$ad[$a].'<br/>advertiser - catagory is:  '.$adcat[$a]->child.
         '<br/>';

    if (isset($_SESSION['sumit'])){


    $data = cjlinks($a);
    $attributes = $data->products->attributes();

        if ($attributes->{'total-matched'} == 0){
            echo 'No products found ...try again with new keyword.';
            }else{
                foreach ($data->products[0] as $product) 
                {
                // Sanitize data.
                $price = number_format((float)$product->price, 2, '.', ' ');
                $image = '<a href="'.$product->{'buy-url'}.'"><img src="'.$product->{'image-url'}                            .'" style="float: right"/></a>';
                $pd =  $image.$product->description .'<a href="'.$product->{'buy-url'}.
                        '">...For more details and to buy it click here</a>';
                $p = array('post_title'    => $product->name,
                    'post_content'  => $pd,
                    'post_status'   => 'publish',
                    'post_author'   => 1,
                    'post_category'  =>array($_GET['cat']));
                $pr = wp_insert_post( $p, $wp_error );
                echo '<br/>posted...post ID is:'.$pr;
                wp_reset_query();  // Restore global post data stomped by the_post().

                }
            }   

        }else{
        echo 'please complete form';
        $a = $a+1;
    }
 }




?>
<html>
<body>

<form action="catag.php" method="get">
<table>




<tr>

         <td><label> Select a catagory from list:</label></td></tr>
         <tr>
            <?php

            foreach($cat as $key=>$val){



                        echo '<tr><td><input type="radio" value="'.$val->cat_ID.'" name="cat" id="'.$val->cat_ID.'">'.$val->cat_name.'</td></tr>';
                  }     

                ?>

              </tr>


</table>
<input type="submit" name="submit" value="submit">
</form><br>


</body>
</html>

1 个答案:

答案 0 :(得分:1)

你不能逐字地“暂停”php脚本,因为在页面加载之前在服务器上执行了php

要执行任何类型的“暂停”,您需要在Javascript或其他客户端(浏览器执行)代码中编写函数,或者将类似Ajax请求的内容发送到php页面,然后更新响应当前页面。