Re: Count and Preg_Replace Using Version 4.4.1

From: Date: Mon, 05 Dec 2005 14:19:02 +0000
Subject: Re: Count and Preg_Replace Using Version 4.4.1
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-226869@lists.php.net to get a copy of this message
Shaun wrote:
Hi, The following code matches all occurences of <p> tags within an html page and wraps form tags around it: echo preg_replace(
    '/<p[^>]*>(.*?)<\/p>/ms',
    '<form name="form" target="_parent" action="'.$CFG->edit_pages_adm.'/index.php?action=edit_paragraph" method="post">
      <input type="hidden" name="text" value="$1">
      <p><a href="javascript:;" onclick="document.form.submit();">$1</a></p>
     </form>',
    file_get_contents($CFG->frontenddir_editable.'/'.$file) );
Unfortunately if there is more than one match the form won't submit because the forms have the same name. Does anyone know how can I modify this so that each occurence is numbered sequentially i.e. form'.$count.'... As I am using version 4.4.1 I don't have access to the count paramter in version 5.1. Thanks for your advice
Each of your html input elements must have a different name, otherwise the php code will only see the last one. Consider a simple foreach loop to generate your html input elements, e.g., $report= ""; $i= 0; foreach($array as $key=> $value){ $report .= "<p><input type=\"text\" name=\"input$i\" value=\"\"></P>"; other stuff as needed $i++; }//end echo $report; I'm not sure I see why you need the JAVA script. Seems like you can let the user poke in everything and then provide a submit button to post everything. Your $_POST will contain all the results. e.g., $value1= $_POST['input1']; $value2= $_POST['input2']; etc. Another simple foreach loop can be used to extract the input values.

« previous php.general (#226869) next »