PHP или JavaScript Получить следующий массив на кнопку - PullRequest
0 голосов
/ 08 марта 2012

Вытащить simplexml и разобрать их в переменные php. У меня есть форма с массивами в них. Мне нужна кнопка вне формы, которая «по существу» перейдет в ту же форму, но со следующим номером массива. IE:

<? 
   if( $xml = simplexml_load_file('my.xml') ) {
       foreach( $xml as $SAVED_EXPORT) {
           $mfg = $SAVED_EXPORT->productmanufacturer;
        }
   }
?>

<form id="myform" method="post" action="coderdb.php">
  <input type="text" value="<? echo $mfg[0] ?>" name="MFG" />
  <input type="submit" />
</form>

Я хотел бы иметь кнопку, которая говорит СЛЕДУЮЩАЯ, что при нажатии она вызовет следующий массив, т.е. $mfg[1]. Я считаю, что страница должна быть перезагружена, и это нормально. Я где-то читал, что мне, возможно, придется использовать $key, но никогда не использовал, и я не совсем уверен, что мне здесь нужно.

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Вам нужен способ отслеживать, какой индекс массива вы используете, потому что на данный момент вы устанавливаете только статическое число 0.Таким образом, если вы добавите скрытую форму, вы можете отправить ей значение, в котором вы находитесь в данный момент, а затем, используя PHP, вы можете увеличить его до отображения новой формы.Также ваша форма должна указывать на документ PHP, на котором она находится.

<? 
   if( $xml = simplexml_load_file('my.xml') ) {
       foreach( $xml as $SAVED_EXPORT) {
           $mfg = $SAVED_EXPORT->productmanufacturer;
        }
   }
   if(isset($_POST["index"])) $index = $_POST["index"] + 1;
   else $index = 0;
?>

<form id="myform" method="post" action="coderdb.php">
  <input type="hidden" value="<? echo $index ?>" name="index" />
  <input type="text" value="<? echo $mfg[$index] ?>" name="MFG" />
  <input type="submit" />
</form>
0 голосов
/ 08 марта 2012

Вам нужен javascript, использующий JQuery.

<script type="text/javascript">
    $(function(){
        var array = [];
<? 
    if( $xml = simplexml_load_file('my.xml') ) {
        $i=0;
        foreach( $xml as $SAVED_EXPORT) {
            $mfg = $SAVED_EXPORT->productmanufacturer;
        }
    }
    foreach($mgf as $key=$value) {
        // if $key in not numeric then add iterator for this foreach   
        echo "array[$key]=$value";
    }
?>
        iterator = 0;
        $('#nextExport').click(function(){
            var theInput = $('#setExport');
            // theInput.attr('val',array[iterator]);      
            theInput.val(array[iterator]);
            if(iterator==array.length) { 
                  iterator = -1;
            }
            iterator++; 
        });
    });
</script>

<form id="myform" method="post" action="coderdb.php">
     <input type="text" id="setExport" value="<? echo $mfg[0] ?> name="MFG" />
     <input type="button" id="nextExport" value="Next Export" />
     <input type="submit" />
</form>

Надеюсь, это поможет.если что-то идет не так, проверьте синтаксис, логика верна.

...